par
Victor BRITO » 06 nov. 2006, 15:26
Salut à tous!
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
Parmi les URL à réécrire, il y en a qui comportent un ou plusieurs paramètres (récupérables avec $_GET['nom_du_paramètre']).
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]
Une question qu'on peut se demander:
l'ordre d'apparition des règles de réécriture importe-t-il?
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]
alors
http://www.monsite.com/chemin-depuis-la ... -edit.html =
http://www.monsite.com/chemin-depuis-la ... aram3=edit
Salut à tous!
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]
Options +FollowSymLinks
RewriteEngine on
RewriteRule #votre règle de réécriture d'URL sur une seule ligne
[/code]
Parmi les URL à réécrire, il y en a qui comportent un ou plusieurs paramètres (récupérables avec $_GET['nom_du_paramètre']).
Soit les trois types d'URL suivants:
http://www.monsite.com/chemin-depuis-la-racine-du-site/page.php?param1=25
http://www.monsite.com/chemin-depuis-la-racine-du-site/page.php?param1=25¶m2=titre
http://www.monsite.com/chemin-depuis-la-racine-du-site/page.php?param1=25¶m2=titre¶m3=edit
qui doivent être réécrites ainsi:
http://www.monsite.com/chemin-depuis-la-racine-du-site/page25.html
http://www.monsite.com/chemin-depuis-la-racine-du-site/page25-titre.html
http://www.monsite.com/chemin-depuis-la-racine-du-site/page25-titre-edit.html
Trois règles de réécriture doivent être, par conséquent, fournies au fichier .htaccess, que voici:
[code]
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]
[/code]
Une question qu'on peut se demander: [b]l'ordre d'apparition des règles de réécriture importe-t-il[/b]?
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-racine-du-site/page25-titre-edit.html par rapport à la page http://www.monsite.com/chemin-depuis-la-racine-du-site/page.php?param1=25¶m2=titre¶m3=edit .
Autrement dit, si
[code]
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]
[/code]
alors http://www.monsite.com/chemin-depuis-la-racine-du-site/page25-titre-edit.html = http://www.monsite.com/chemin-depuis-la-racine-du-site/page.php?param1=25¶m2=titre¶m3=edit