Les réécritures d?URL sont le plus souvent utilisées pour présenter aux visiteurs une URL plus mnémotechnique ou pour permettre à certains moteurs d?indexer des pages dynamiques avec de nombreux paramètres qu?ils n?auraient pas visité sans réécriture.
Pour les robots d?indexation, la raison en est simple.
Dans le cas d?une URL dynamique du type article.php?num=12 , un moteur ne peut pas déterminer s?il ne va pas tomber dans une boucle sans fin. Un script article.php mal écrit - volontairement ou non - peut l?entraîner vers une multitude de pages satellites ne différant que par leur URL. C?est pour la même raison qu?ils n?indexent pas les pages avec des identifiants de session PHP, une même page étant retournée au navigateur avec une multitude d?identifiants de session différents.
Vous avez un site sur lequel vous présentez un catalogue en ligne. Sur ce site, chaque article comporte 2 pages, par exemple une page commerciale et une fiche technique.
De plus, les informations concernant l?article sont extraites d?une base de données, en se basant sur le numéro d?article.
Les URL des deux pages de l?article 8125 seront donc sous la forme (si votre script se nomme article.php) :
http://www.votresite.tld/article.php?numero=8125&page=1
http://www.votresite.tld/article.php?numero=8125&page=2
Vous préféreriez, et cela se comprend, que vos visiteurs accèdent à cet article par :
http://www.votresite.tld/article-8125-1.html
http://www.votresite.tld/article-8125-2.html
Analysons point par point comment réécrire cette règle toujours simple.
Nous voyons dans ces URL qu?elles contiennent deux parties variables : le numéro d?article et le numéro de page, tout le reste étant fixe comme le nom du script et le nom des variables.
La règle s?écrirait comme ceci :
RewriteEngine on
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?numero=$1&page=$2 [L]
|