PRATIQUE OUTILS 
Arranger ses URLs avec mod_rewrite
 
"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)
  Forum

Réagissez dans les forums de JDN Développeurs

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 :

RewriteRule ^pages/([A-Za-z0-9-]+)/?$ page.php?page=$1 [R, L]

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 :

RewriteRule ^pages/([A-Za-z0-9-]+)/([0-9]+)?$ page.php?page=$1&numpage=$2 [R, L]

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page