L’url rewriting sans mod_rewrite
22:25 21 11 2005Une des fonctionnalités puissantes du serveur web Apache est l’URL rewriting. Cela permet de remplacer des URL complexes du genre
mapage.php?var1=toto&var2=titi
par quelque chose de plus compréhensible pour les moteurs de recherche comme
toto_et_titi.php
L’intérêt principal est d’optimiser son référencement et donc d’avoir des pages mieux placées dans les résultats de recherches. Pour pouvoir utiliser ces fonctionnalités, il faut disposer du module mod_rewrite dans Apache.
Je disais donc, c’est très puissant, mais malheureusement, ce module n’est pas toujours disponible, et si vous n’êtes pas root du serveur, vous n’aurez sûrement pas la possibilité de l’installer.
Plusieurs astuces permettent toutefois d’avoir le même comportement sans pour autant utiliser le mod_rewrite.
Une des solutions consiste à se baser sur la directive FilesMatch d’Apache. Cette directive peut être utilisée localement dans un répertoire grâce à un fichier ‘.htaccess’. Elle permet d’associer un comportement particulier en fonction d’une contrainte définie grâce à une expression régulière. Oulla, par très clair tout ça. Pour simplifier,
« Si l’URL demandée correspond à cette contrainte alors appliquer ce comportement ».
L’idée est de rediriger l’appel vers un script php si un répertoire se trouve dans l’URL. En fait ce répertoire n’existe pas, par contre un fichier portant le même nom existe lui et contient du code PHP à exécuter.
Mmm, toujours pas clair? Bon passons aux travaux pratiques ce sera peut être mieux :
Je créé un fichier ‘.htaccess’ à la racine de mon site. Dedans je mets :
<filesmatch « ^formations$ »>
ForceType application/x-httpd-php
</filesmatch>
Maintenant, je créé un fichier formation (sans extension) et je mets du code PHP dedans. On pourra, par exemple, analyser l’url courante ($_SERVER['REQUEST_URI']) et faire un include en fonction de celle-ci.
Lorsque j’appellerais l’url http://monsite/formations/toto.php, c’est en fait le fichier formations qui sera exécuté en tant que PHP. Voilà, le tour est joué!
Vous n’avez toujours rien compris??? Mais vous êtes nuls! Je rigole bien sûr. Bon, je viens de trouver une page sur developpez.com qui explique la même chose (et bien d’autres choses) mais en mieux :
J’utilise personnellement cette solution sur un serveur où je n’ai pas la main, ça marche très bien et me permet d’avoir de très bons résultats sur Google.
C’est très intéréssant ça. Merci.
Merci pour l’article !
Tom Miller
j’adore votre site !
health care products…
matrimony Pompeii battleground …
Il y a aussi une technique utilisant les pages d’erreur 404 expliquée ici : http://www.urlrewriting.fr/tutoriel-urlrewriting-sans-moteur-rewrite.htm
Pas mal comme astuce, moi aussi je « favorise »