On sait, de source sûre, que Google - et sa bande - fait très attention à l'écriture des URL, donc des adresses des pages (et du nom de domaine, par la même occasion). Seulement en PHP, on est souvent tenté de développer une page où les données, ayant le même thème, extraites ou pas d'une base de données, sont affichées par l'attribution d'une variable $_GET. On pense de suite à $_GET['id'] qui pilotera l'affichage des dites données. A l'extrême, PHP est suffisamment souple pour permettre l'écriture d'un site... en une seule page ! Le tout est de bien gérer ses variables ;-)
Le fichier .htaccess va permettre la réécriture d'URL "à la volée", donc de transformer les vilains $id qui ne veulent rien dire en jolis noms bien clairs. Partant du principe que www.monsite.com/recettes-de-cuisine-desserts.php est plus parlant que www.monsite.com/recettes.php?id=1 il suffit de faire ceci :
RewriteEngine on RewriteRule recettes-de-cuisine-desserts\.php recettes.php?id=1 [QSA,L] RewriteRule recettes-de-cuisine-poissons\.php recettes.php?id=2 [QSA,L]
L'anti slash est nécessaire pour signaler un point (et non un caractère quelconque en expression régulière).
Le tag QSA permet de transmettre chaque query string au script (autres que id), par exemple le n° de la page s'il y en a plusieurs.
L commande au serveur une redirection "cachée", c'est à dire que www.monsite.com/recettes-de-cuisine-desserts sera affiché (id sera lui transmis au script par le serveur). En écrivant R, l'URL normale www.monsite.com/recettes.php?id=1 serait visible (et référencée par les robots). C'est utile quand on veut rediriger une page (ou un groupe de pages) qui a changé de nom.
NB : Il faut s'assurer que RewriteEngine soit disponible sur le serveur ; chez Club-Internet ce n'est pas le cas. Sans quoi une erreur 500 peut survenir (erreur interne au serveur). C'est d'ailleurs le test critique à réaliser. Il faut avoir le FTP en vue pour supprimer .htaccess en cas d'erreur !
On peut même écrire une adresse comme un répertoire (sans slash) : www.monsite.com/recettes-de-cuisine-desserts. L'écriture peut être raccourcie en utilisant les expressions régulières ^ et $, si l'on est certain que les raccourcis choisis n'existent pas dans une autre URL du site.
RewriteEngine on RewriteRule ^desserts$ recettes.php?id=1 [QSA,L] RewriteRule ^poissons$ recettes.php?id=2 [QSA,L]
Il reste à oublier recettes.php?id=1 pour écrire en toutes pages :
<a href="recettes-de-cuisine-desserts.php">Recettes de cuisine : les desserts</a>
ou encore :
<a href="recettes-de-cuisine-desserts">Recettes de cuisine : les desserts</a>
selon la config du fichiers ci-avant.
http://dev.ppan.net