Un des problèmes des sites php dynamiques est le référencement dans les moteurs de recherche. Souvent, les URLs de ces applications sont complexes et mal comprises par les différents moteurs de recherche. Une bonne pratique consiste à réécrire ces URLs afin qu’elles soient plus simples à comprendre pour les moteurs de recherche (mais également pour les utilisateurs).
Dans cet article, nous allons aborder les notions de base concernant cette pratique qui devrait être mise en place pour toute application php nécessitant un référencement dans les moteurs de recherches en ligne tels que Google, Bing, etc …
Un autre avantage de cette méthode se situe au niveau de la sécurité. En effet, il est tout à fait possible de cacher les variables ainsi que le langage utilisé car on pourra choisir n’importe quelle extension.
Il est à noter que les différents frameworks du marché comme par exemple symfony2 gèrent les URLs propres automatiquement et qu’il vous sera alors inutile de vous occuper de la gestion des URLs dans ce genre de fichiers de configuration complexes. Un tutoriel symfony2 expliquant la mise en place d’un site simple avec authentification sera bientôt mis en ligne.
Pour profiter pleinement de ce tutoriel, il est essentiel de bien maîtriser les expressions régulières et d’avoir des connaissances en bash et php.
Pour un tour d’horizon rapide des expressions régulières, vous pouvez visiter la page Wikipedia : Les expressions régulières
Pour expliquer assez simplement le principe: il s’agit de permettre à notre serveur web (ici Apache) d’interpréter les URLs de type “propres” comme par exemple :
http://www.example.com/1/2/Nom-de-l-article/
Et de transformer l’URL dans un format que votre application php pourra comprendre, comme par exemple :
http://www.example.com/index.php?page=1&article=2
Avant tout, il faut savoir que l’URL rewriting n’est pas pris en charge par tous les hébergeurs. Ainsi, si votre site est hébergé sur un serveur dont vous ne pouvez changer la configuration, il faudra vous renseigner auprès de celui-ci afin de savoir si vous pouvez la mettre en place.
En revanche, si vous avez votre propre serveur web, il devrait être possible, sans grande difficulté, d’activer l’URL rewriting. Le but de ce tutoriel n‘étant pas de lister tous les types de serveurs web, nous allons ici prendre exemple sur le serveur le plus répandu, à savoir Apache.
Pour activer la réécriture d’URL dans Apache 2, rien de plus simple. Il suffit de rendre disponibles les fichiers du module rewrite dans le dossier mods-enabled. Voici les commandes à taper sur un serveur debian (vous devez avoir les droits root) :
a2enmod rewrite
/etc/init.d/apache2 restart
Une fois le module rewrite activé, il faut vous assurer que le site par défaut est bien configuré pour autoriser la réécriture. Rendez vous dans le fichier /etc/apache2/sites-enabled/000-default et éditez-le afin de définir toutes les variables AllowOverride sur All :
http://votre_server/dossier_que_vous_avez_créé/test.html
Si le texte “Vous avez été redirigé vers le fichier page.html” s’affiche, l’URL rewriting fonctionne !