Le module Apache mod_rewrite - Serveur Apache HTTP Version 2.4

Apache Server 2.4

Serveur Apache HTTP Version 2.4

<-

Le module Apache mod_rewrite

mod_rewrite permet de modifier les requêtes entrantes dynamiquement, en fonction de règles manipulant des expressions rationnelles. Vous pouvez ainsi relier des URLs arbitraires à votre propre structure d'URLs interne comme vous le souhaitez.

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 : 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, de recherches dans des bases de données externes, ou même de requêtes vers des bases de données externes et de différents gestionnaires ou programmes externes.

Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal (httpd.conf), mais aussi dans le contexte des serveurs virtuels (sections <VirtualHost>), ou dans le contexte des répertoires (fichiers .htaccess et blocs <Directory>. Le résultat réécrit peut conduire vers d'autres règles à un traitement secondaire interne, une redirection vers une requête externe ou même l'envoi vers un serveur mandataire, en fonction des drapeaux que vous attachez aux règles

mod_rewrite étant très puissant, il peut par conséquent être très complexe. Ce document complète la documentation de référence du module mod_rewrite, et est sensé alléger un peu cette complexité, et présenter des exemples largement commentés, ainsi que des situations courantes que vous pourrez traiter avec mod_rewrite. Mais nous voulons aussi vous montrer des situations où vous ne devrez pas utiliser mod_rewrite, et lui préférer d'autres fonctionnalités standard d'Apache, évitant ainsi d'entrer dans une complexité inutile.