Serveur HTTP Apache Version 2.4

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
      (apache2.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.