Lorsque vous voulez réécrire les URL de votre sitre dynamique afin d'améliorer le référencement de ce dernier, le fichier .htaccess est incontournable.
Le principe consiste à écrire dans le .htaccess, que vous placez à la racine du site, la structure de code que voici:
Code : Tout sélectionner
Options +FollowSymLinks
RewriteEngine on
RewriteRule #votre règle de réécriture d'URL sur une seule ligne
Soit les trois types d'URL suivants:
http://www.monsite.com/chemin-depuis-la ... ?param1=25
http://www.monsite.com/chemin-depuis-la ... ram2=titre
http://www.monsite.com/chemin-depuis-la ... aram3=edit
qui doivent être réécrites ainsi:
http://www.monsite.com/chemin-depuis-la ... age25.html
http://www.monsite.com/chemin-depuis-la ... titre.html
http://www.monsite.com/chemin-depuis-la ... -edit.html
Trois règles de réécriture doivent être, par conséquent, fournies au fichier .htaccess, que voici:
Code : Tout sélectionner
RewriteRule ^page([0-9]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1 [L]
RewriteRule ^page([0-9]+)-([a-z]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1¶m2=$2 [L]
RewriteRule ^page([0-9]+)-([a-z]+)-([a-z]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1¶m2=$2¶m3=$3 [L]
Eh bien, oui.
Je vous conseille vivement de commencer par déclarer les règles de réécriture les plus complexes et de réserver les plus simples pour la fin (en gros, dans notre exemple, inversez l'ordre du code ci-dessus). En effet, si vous n'appliquez pas cette règle, vous risquez d'avoir des surprises à l'affichage de la page http://www.monsite.com/chemin-depuis-la ... -edit.html par rapport à la page http://www.monsite.com/chemin-depuis-la ... aram3=edit .
Autrement dit, si
Code : Tout sélectionner
RewriteRule ^page([0-9]+)-([a-z]+)-([a-z]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1¶m2=$2¶m3=$3 [L]
RewriteRule ^page([0-9]+)-([a-z]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1¶m2=$2 [L]
RewriteRule ^page([0-9]+)\.html$ /chemin-depuis-la-racine-du-site/page.php?param1=$1 [L]