"Comment puis-je modifier mon URL pour qu'une requête de type /pages/nom-de-la-page/ soit interprétée par le serveur comme /page.php?page=nom-de-la-page ?"
(12/05/2005)
mod_rewrite est une des fonctionnalités
les plus utiles du serveur Apache, mais aussi des plus ardues
à mettre en oeuvre, car elle fait appel dans de nombreux cas
aux expressions rationnelles, ainsi qu'à une combinaison d'indicateurs,
de codes et de conditions que ne sont pas facilement maîtrisables
une fois combinés sur une ligne. Nous l'avions déjà
étudié dans un article précédent
(lire l'article
du 19/09/2003).
L'usage présenté ici est cependant des plus classique, et se
résout en une ligne au sein du fichier .htaccess
:
La parenthèse
mise en place indique à mod_rewrite
l'élément qu'il devra récupérer et mettre à la place du $1
final.
Il est possible d'étendre cela en ajoutant une pagination. Par
exemple, pour que /pages/nom-de-la-page/5/
envoie la requête comme /page.php?page=nom-de-la-page&numpage=5
on ajoute la règle :