``Ce qui est super avec mod_rewrite, c'est qui permet autant de configuration et de flexibilité que Sendmail. L'inconvénient de mod_rewrite, c'est qu'il permet autant de configuration et de flexibilité que Sendmail.''
-- Brian Behlendorf
Groupe Apache
``Malgré les tonnes d'exemples et de documentations, mod_rewrite relève de la magie vaudoue. De la magie vaudoue super géniale, mais de la magie vaudoue.''
-- Brian Moore
bem@news.cmc.net
Bienvenue dans mod_rewrite, le couteau suisse de la manipulation d'URL !
Ce module met en oeuvre un moteur de réécriture à base de règles (basé sur un interpréteur d'expressions rationnelles) pour réécrire les URLs issues des requêtes à la volée. Il fournit un mécanisme de manipulation d'URL particulièrement souple et puissant en supportant un nombre illimité de règles et de conditions attachées à chaque règle. Les manipulations d'URLs peuvent dépendre de tests variés : par exemple, les URLs peuvent être finement caractérisées en fonction de variables du serveur, de variables d'environnement, d'en-têtes HTTP, de repères temporels, ou même de requêtes vers des bases de données externes sous différents formats.
Ce module agit sur l'ensemble des URLs (la partie chemin
incluse) non seulement dans le contexte du serveur principal
(httpd.conf), mais aussi dans le contexte des
répertoires (fichiers .htaccess et blocs
<Directory>), et peut même générer des chaînes
de requête comme résultat. Le résultat réécrit peut conduire à un
traitement secondaire interne, une redirection vers une requête
externe ou même l'envoi vers un serveur mandataire.
Mais toutes ces fonctionnalités et cette souplesse ont un inconvénient : la complexité. N'espérez donc pas comprendre ce module dans les détails en un seul jour.