Serveur Apache HTTP Version 2.4

| Description: | Ce module fournit un moteur de r��criture � base de r�gles permettant de r��crire les URLs des requ�tes � la vol�e | 
|---|---|
| Statut: | Extension | 
| Identificateur�de�Module: | rewrite_module | 
| Fichier�Source: | mod_rewrite.c | 
Le module mod_rewrite utilise un moteur de
      r��criture � base de r�gles, bas� sur un interpr�teur
      d'expressions rationnelles PCRE, pour r��crire les URLs � la vol�e. Par
      d�faut, mod_rewrite met en correspondance une URL
      avec le syst�me de fichiers. Cependant, on peut aussi l'utiliser
      pour rediriger une URL vers une autre URL, ou pour invoquer une
      requ�te interne � destination du mandataire.
mod_rewrite fournit une m�thode souple et
      puissante pour manipuler les URLs en utilisant un nombre illimit�
      de r�gles. Chaque r�gle peut �tre associ�e � un nombre illimit� de
      conditions, afin de vous permettre de r��crire les URLs en
      fonction de variables du serveur, de variables d'environnement,
      d'en-t�tes HTTP, ou de rep�res temporels.
mod_rewrite agit sur la totalit� de l'URL, y
      compris la partie chemin. Une r�gle de r��criture peut �tre
      invoqu�e dans apache2.conf ou dans un fichier
      .htaccess. Le chemin g�n�r� par une r�gle de
      r��criture peut inclure une cha�ne de param�tres, ou peut renvoyer
      vers un traitement secondaire interne, une redirection vers une
      requ�te externe ou vers le mandataire interne.
Vous trouverez d'avantage de d�tails, discussions et exemples dans la documentation d�taill�e sur mod_rewrite.
mod_rewrite offre une journalisation d�taill�e
    de ses actions aux niveaux de journalisation trace1 �
    trace8. Le niveau de journalisation peut �tre d�fini de
    mani�re sp�cifique � mod_rewrite via la directive
    LogLevel : jusqu'au niveau
    debug aucune action n'est journalis�e, alors qu'elles
    le sont pratiquement toutes au niveau trace8.
mod_rewrite va ralentir votre serveur HTTP Apache
      de mani�re dramatique ! N'utilisez un niveau de journalisation
      sup�rieur � trace2 qu'� des fins de d�bogage !
    LogLevel alert rewrite:trace3
Ceux qui sont familiers avec les versions pr�c�dentes de
      mod_rewrite vont probablement rechercher en vain les
      directives RewriteLog et
      RewriteLogLevel. Elles ont �t� en effet remplac�es
      par une configuration de la journalisation par module, comme
      mentionn� plus haut.
      
Pour extraire les traces sp�cifiques �
      mod_rewrite, affichez le fichier journal en
      redirigeant la sortie vers grep :
    tail -f error_log|fgrep '[rewrite:'
    
| Description: | D�finit l'URL de base pour les r��critures au niveau r�pertoire | 
|---|---|
| Syntaxe: | RewriteBase chemin_URL | 
| D�faut: | Pas de valeur par d�faut | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | FileInfo | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
La directive RewriteBase permet de
      sp�cifier le pr�fixe d'URL � utiliser dans un contexte de
      r�pertoire (htaccess) pour les directives
      RewriteRule qui r��crivent vers un chemin
      relatif.
Cette directive est obligatoire si vous utilisez un chemin relatif dans une substitution, et dans un contexte de r�pertoire (htaccess), sauf si au moins une de ces conditions est v�rifi�e :
DocumentRoot (c'est �
	  dire que pour y acc�der, il n'est pas n�cessaire d'utiliser
	  une directive telle qu'Alias).RewriteRule, suffix� par
	  la substitution relative est aussi valide en tant qu'URL sur
	  le serveur (ce qui est rare).Dans l'exemple ci-dessous, la directive
RewriteBase est n�cessaire afin d'�viter une
r��criture en http://example.com/opt/myapp-1.2.3/welcome.html car la
ressource n'�tait pas relative � la racine des documents. Cette erreur
de configuration aurait conduit le serveur � rechercher un r�pertoire
"opt" � la racine des documents.
DocumentRoot /var/www/example.com
Alias /myapp /opt/myapp-1.2.3
<Directory /opt/myapp-1.2.3>
 RewriteEngine On
    RewriteBase /myapp/
    RewriteRule ^index\.html$  welcome.html
</Directory>
| Description: | D�finit une condition qui devra �tre satisfaite pour que la r��criture soit effectu�e | 
|---|---|
| Syntaxe: |  RewriteCond
      cha�ne_de_test expression_de_comparaison | 
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess | 
| AllowOverride: | FileInfo | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
La directive RewriteCond permet de d�finir une
      condition d'ex�cution d'une r�gle. Une ou plusieurs conditions
      RewriteCond peuvent pr�c�der une
      directive RewriteRule. La r�gle de r��criture correspondante n'est
      ainsi ex�cut�e que si ces conditions sont satisfaites,
      et si l'URI correspond au mod�le sp�cifi� dans la
      r�gle.
TestString est une cha�ne qui peut contenir les extensions suivantes en plus du texte simple :
$N (0 <= N <= 9). $1 � $9
	  permettent d'acc�der aux parties regroup�es (entre
	  parenth�ses) du mod�le, issues de la RewriteRule
	  concern�e par le jeu de conditions RewriteCond
	  courant. $0 donne acc�s � l'ensemble de la cha�ne
	  correspondant au mod�le.%N (0 <= N <= 9). %1 � %9
	  permettent d'acc�der aux parties regroup�es (entre
	  parenth�ses) du mod�le, issues de la RewriteRule
	  concern�e par le jeu de conditions RewriteCond
	  courant. %0 donne acc�s � l'ensemble de la cha�ne
	  correspondant au mod�le.${nomTable:cl�|d�faut}. Voir la href="#mapfunc">documentation sur RewriteMap
	   pour plus de d�tails.
        %{ NAME_OF_VARIABLE },
            o� NOM_DE_VARIABLE peut contenir une cha�ne issue
	    de la liste suivante :
          | En-t�tes HTTP : | connexion & requ�te: | |
|---|---|---|
| 
		 HTTP_ACCEPT HTTP_COOKIE HTTP_FORWARDED HTTP_HOST HTTP_PROXY_CONNECTION HTTP_REFERER HTTP_USER_AGENT  | 
              
                 AUTH_TYPE CONN_REMOTE_ADDR CONTEXT_PREFIX CONTEXT_DOCUMENT_ROOT IPV6 PATH_INFO QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_PORT REMOTE_USER REQUEST_METHOD SCRIPT_FILENAME  | 
	      |
| variables internes au serveur : | date et heure : | sp�ciaux : | 
| 
	         DOCUMENT_ROOT SCRIPT_GROUP SCRIPT_USER SERVER_ADDR SERVER_ADMIN SERVER_NAME SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE  | 
              
                 TIME_YEAR TIME_MON TIME_DAY TIME_HOUR TIME_MIN TIME_SEC TIME_WDAY TIME  | 
              
                 API_VERSION CONN_REMOTE_ADDR HTTPS IS_SUBREQ REMOTE_ADDR REQUEST_FILENAME REQUEST_SCHEME REQUEST_URI THE_REQUEST  | 
            
Ces variables correspondent toutes aux en-t�tes MIME
		HTTP de m�mes noms, au variables C du serveur HTTP Apache, ou
		aux champs struct tm du syst�me Unix. La
		plupart d'entre elles sont document�es ici, dans la
		sp�cification CGI ou ailleurs dans le
		manuel.
SERVER_NAME et SERVER_PORT d�pendent respectivement
		des valeurs des directives UseCanonicalName et UseCanonicalPhysicalPort.
Parmi les variables sp�cifiques � mod_rewrite, ou trouve les suivantes :
API_VERSIONCONN_REMOTE_ADDRmod_remoteip).HTTPSmod_ssl soit charg� ou non).IS_SUBREQREMOTE_ADDRmod_remoteip).REQUEST_FILENAMEREQUEST_FILENAME contient la
		  valeur de REQUEST_URI. En fonction de la
		  valeur de la directive AcceptPathInfo, le serveur
		  peut n'utiliser que certains �l�ments de t�te du
		  REQUEST_URI pour d�terminer � quel
		  fichier correspond la requ�te.REQUEST_SCHEMEServerName.REQUEST_URIQUERY_STRING.THE_REQUESTGET
                  /index.html HTTP/1.1"), � l'exclusion de tout
		  en-t�te ajout� par le navigateur. Cette
		  valeur n'a pas �t� d�s�chapp�e (d�cod�e), � la
		  diff�rence de la plupart des variables suivantes.Si cha�ne_de_test contient la valeur sp�ciale
      expr, expression_de_comparaison sera trait�
      en tant qu'expression rationnelle de type ap_expr. Si des en-t�tes HTTP sont
      r�f�renc�s dans l'expression rationnelle, et si le drapeau
      novary n'est pas activ�, ils seront ajout�s �
      l'en-t�te Vary.
Autres points � conna�tre ::
Les variables SCRIPT_FILENAME et
	REQUEST_FILENAME contiennent toutes deux la valeur
	du champ filename de la
	structure interne request_recdu serveur HTTP Apache.
	Le premier nom correspond au nom de variable bien connu CGI,
	alors que le second est l'�quivalent de REQUEST_URI (qui
	contient la valeur du champ uri de
	request_rec).
Si une substitution intervient et si la r��criture se poursuit, la valeur des deux variables sera mise � jour en cons�quence.
Dans le contexte du serveur principal (c'est � dire avant que
	la requ�te ne soit mise en correspondance avec le syst�me de
	fichiers), SCRIPT_FILENAME et REQUEST_FILENAME  ne peuvent pas
	contenir le chemin entier dans le syst�me de fichiers local car
	ce chemin b'est pas connu � ce stade du traitement. Dans ce cas,
	les deux variables contiendront la valeur de REQUEST_URI. Pour
	obtenir le chemin complet de la requ�te dans le syst�me de
	fichiers local dans le contexte du serveur principal, utilisez une
	r�f�rence avant � base d'URL
	%{LA-U:REQUEST_FILENAME} pour d�terminer la valeur
	finale de REQUEST_FILENAME.
%{ENV:variable}, o� variable peut
	correspondre � une variable d'environnement quelconque.%{ENV:variable} est aussi disponible, o�
	variable peut correspondre � toute variable
	d'environnement. Peut �tre consult� via des structures internes
	d'Apache httpd et (si on ne les trouve pas ici) via la fonction
	getenv() � partir du processus du serveur Apache
	httpd.mod_ssl soit charg� ou non, on peut
	utiliser %{SSL:variable}, o� variable
	peut �tre remplac� par le nom d'une
	variable
	d'environnement SSL . Si mod_ssl n'est pas
	charg�, cette variable contiendra toujours une cha�ne vide.
	Exemple : %{SSL:SSL_CIPHER_USEKEYSIZE} pourra
	contenir la valeur 128.%{HTTP:en-t�te}, o�
	en-t�te peut correspondre � tout nom d'en-t�te MIME
	HTTP, pour extraire la valeur d'un en-t�te envoy� dans la
	requ�te HTTP. Par exemple, %{HTTP:Proxy-Connection}
	contiendra la valeur de l'en-t�te HTTP
	"Proxy-Connection:".
	Si on utilise un en-t�te HTTP
	dans une condition, et si cette condition est �valu�e �
	vrai pour la requ�te, cet en-t�te sera ajout� � l'en-t�te Vary de
	la r�ponse. Il ne le sera pas si la condition est �valu�e �
	faux. L'ajout de l'en-t�te HTTP � l'en-t�te Vary
	est n�cessaire � une mise en cache appropri�e.
	Il faut garder � l'esprit que les conditions suivent une
	logique de cout-circuit si le drapeau
	'ornext|OR' est utilis�, et que de
	ce fait, certaines d'entre elles ne seront pas �valu�es.
%{LA-U:variable}, qui
	permet d'effectuer une sous-requ�te interne � base d'URL, afin
	de d�terminer la valeur finale de variable. Ceci permet
	d'acc�der � la valeur d'une variable pour la r��criture inconnue
	� ce stade du traitement, mais qui sera d�finie au
	cours d'une phase ult�rieure.
	Par exemple, pour effectuer une r��criture d�pendant de la
	variable REMOTE_USER dans le contexte du serveur
	principal (fichier apache2.conf), vous devez utiliser
	%{LA-U:REMOTE_USER} - cette variable est d�finie
	par la phase d'autorisation qui intervient apr�s la
	phase de traduction d'URL (pendant laquelle mod_rewrite op�re).
Par contre, comme mod_rewrite impl�mente son contexte de
	r�pertoire (fichier .htaccess) via la phase Fixup
	de l'API, et comme la phase d'autorisation intervient
	avant cette derni�re, vous pouvez vous contenter
	d'utiliser %{REMOTE_USER} dans ce contexte.
%{LA-F:variable} peut �tre utilis�e pour effectuer
	une sous-requ�te interne (bas�e sur le nom de fichier), afin de
	d�terminer la valeur finale de variable. La plupart du
	temps, elle est identique � LA-U (voir ci-dessus).expression_de_comparaison est une expression rationnelle qui est appliqu�e � l'instance actuelle de cha�ne_de_test. cha�ne_de_test est d'abord �valu�e, puis compar�e � l'expression_de_comparaison.
expression_de_comparaison est en g�n�ral une expression rationnelle compatible perl, mais vous disposez des syntaxes suppl�mentaires suivantes pour effectuer d'autres tests utiles sur cha�ne_de_test :
!' (point d'exclamation) pour inverser le r�sultat
	de la condition, quelle que soit l'expression_de_comparaison utilis�e."" (deux guillemets),
	    cha�ne_de_test est compar�e � la cha�ne vide.'-U' (test de l'existence d'une
	    URL via une sous-requ�te)
	    V�rifie si cha�ne_de_test est une URL valide,
	    accessible � travers tous les contr�les d'acc�s du serveur
	    actuellement configur�s pour ce chemin. C'est une
	    sous-requ�te interne qui effectue cette v�rification - �
	    utiliser avec pr�cautions car les performances du serveur
	    peuvent s'en trouver affect�es !
Ce drapeau ne renvoie que des informations concernant le contr�le d'acc�s, l'authentification et l'autorisation. Il ne renvoie pas d'informations concernant le code d'�tat que le gestionnaire configur� (static file, CGI, proxy, etc...) aurait, quant � lui, retourn�.
Si la cha�ne_de_test contient la valeur sp�ciale
	   expr, la cha�ne_de_comparaison sera
	   trait�e en tant qu'expression rationnelle de type ap_expr.
            Dans l'exemple ci-dessous, on utilise -strmatch
	    pour comparer le REFERER avec le nom d'h�te du
	    site afin de bloquer le hotlinking (r�f�rencement direct)
	    non d�sir�.
           
           RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"
           RewriteRule ^/images - [F]
        [drapeaux]
	comme troisi�me argument de la directive
	RewriteCond, o� drapeaux est un
	sous-ensemble s�par� par des virgules des drapeaux suivants :
      nocase|NC'
	(no case)ornext|OR'
	  (ou condition suivante)RewriteCond %{REMOTE_HOST}  ^host1  [OR]
RewriteCond %{REMOTE_HOST}  ^host2  [OR]
RewriteCond %{REMOTE_HOST}  ^host3
RewriteRule ...r�gles concernant tous ces h�tes...
          Sans ce drapeau, les paires
	  condition/r�gle devraient �tre �crites trois fois.
        novary|NV'
	(no vary)Exemple :
Pour r��crire la page d'accueil d'un site en fonction de
       l'en-t�te ``User-Agent:'' de la requ�te, vous
       pouvez utiliser ce qui suit : 
RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
RewriteRule  ^/$                 /homepage.mobile.html  [L]
RewriteRule  ^/$                 /homepage.std.html  [L]
        Explications : si vous utilisez un navigateur qui s'identifie comme un navigateur de mobile (notez que cet exemple est incomplet car il existe de nombreuses autres plateformes mobiles), c'est la version mobile de la page d'accueil qui sera servie. Dans le cas contraire, vous verrez s'afficher la page d'accueil standard.
| Description: | Active ou d�sactive l'ex�cution du moteur de r��criture | 
|---|---|
| Syntaxe: | RewriteEngine on|off | 
| D�faut: | RewriteEngine off | 
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess | 
| AllowOverride: | FileInfo | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
La directive RewriteEngine active ou
      d�sactive l'ex�cution du moteur de r��criture. Si sa valeur est
      off, ce module n'ex�cutera aucun traitement et ne
      mettra pas � jour les variables d'environnement
      SCRIPT_URx.
Plut�t que de commenter toutes les directives RewriteRule, il est pr�f�rable
      d'utiliser cette directive si l'on souhaite d�sactiver les
      r�gles de r��criture dans un contexte particulier.
Notez que les  h�tes virtuels n'h�ritent pas des
      configurations de r��criture. Ceci implique que vous devez
      ins�rer une directive RewriteEngine on dans chaque
      h�te virtuel pour lequel vous souhaitez utiliser des r�gles
      de r��criture.
Les directives RewriteMap du type
      prg ne sont pas prises en compte au cours de
      l'initialisation du serveur si elle ont �t� d�finies dans un
      contexte o� la directive RewriteEngine n'a
      pas �t� d�finie � on.
| Description: | D�finit une fonction de mise en correspondance pour la recherche de mots-cl�s | 
|---|---|
| Syntaxe: | RewriteMap nom_de_la_correspondance type_de_correspondance:source_de_la_correspondance
 | 
| Contexte: | configuration du serveur, serveur virtuel | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
La directive RewriteMap d�finit une
      Table de correspondance pour la r��criture que les
      fonctions de mise en correspondance
      peuvent utiliser dans les cha�nes de substitution des r�gles
      pour ins�rer/substituer des champs en recherchant des mots-cl�s.
      La source utilis�e pour cette recherche peut �tre de plusieurs
      types.
nom_de_la_correspondance est le nom de la table de correspondance et servira � sp�cifier une fonction de mise en correspondance pour les cha�nes de substitution d'une r�gle de r��criture selon une des constructions suivantes :
        ${ nom_de_la_correspondance :
        mot-cl� }
         ${ nom_de_la_correspondance :
        mot-cl� | valeur par d�faut
        }
      
Lorsqu'une telle construction est rencontr�e, la table de correspondance Nom_de_la_correspondance est consult�e et la cl� mot-cl� recherch�e. Si la cl� est trouv�e, la construction est remplac�e par la valeur de remplacement. Si la cl� n'est pas trouv�e, elle est remplac�e par la valeur par d�faut, ou par une cha�ne vide si aucune valeur par d�faut n'est sp�cifi�e. La valeur vide se comporte comme si la cl� �tait absente ; il est donc impossible de distinguer une valeur vide d'une absence de cl�.
Par exemple, vous pouvez d�finir une directive
      RewriteMap comme suit 
RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
Vous pourrez ensuite utiliser cette table dans une
      directive RewriteRule comme suit :
RewriteRule ^/ex/(.*) ${map-exemple:$1}
      Les combinaisons suivantes pour type de correspondance et source de la correspondance peuvent �tre utilis�es :
httxt2dbm (D�tails ...).RewriteMap: toupper, tolower, escape ou unescape
	(D�tails ...).Vous trouverez plus de d�tails et de nombreux exemples dans le RewriteMap HowTo.
| Description: | Configure certaines options sp�ciales pour le moteur de r��criture | 
|---|---|
| Syntaxe: | RewriteOptions Options | 
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess | 
| AllowOverride: | FileInfo | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
| Compatibilit�: | MaxRedirects n'est plus disponible depuis
la version version 2.1 | 
La directive RewriteOptions d�finit
      certaines options sp�ciales pour la configuration au niveau du
      serveur ou du r�pertoire. La cha�ne de caract�res Option
      ne peut actuellement prendre qu'une des valeurs suivantes :
InheritCeci force la configuration locale � h�riter de la
      configuration du niveau sup�rieur. Dans le contexte des h�tes
      virtuels, cela signifie que les correspondances, conditions et
      r�gles du serveur principal sont h�rit�es. Dans le contexte des
      r�pertoires, cela signifie que les conditions et r�gles de la
      configuration .htaccess ou les sections <Directory> du r�pertoire
      parent sont h�rit�es. Les r�gles h�rit�es sont virtuellement
      copi�es dans la section o� cette directive est utilis�e. Si elles
      sont utilis�es avec des r�gles locales, les r�gles h�rit�es sont
      plac�es apr�s ces derni�res. La place de cette directive - avant
      ou apr�s les r�gles locales - n'a aucune influence sur ce
      comportement. Si des r�gles locales ont forc� l'arr�t de la
      r��criture, les r�gles h�rit�es ne seront pas trait�es.
InheritBeforeM�me effet que l'option Inherit ci-dessus, mais
      les r�gles sp�cifi�es dans le niveau parent s'appliquent
      avant les r�gles sp�cifi�es dans le niveau
      enfant.
      Disponible depuis la version 2.3.10 du serveur HTTP
      Apache.
InheritDownSi cette option est activ�e, toutes les configurations enfants
      h�riteront de la configuration courante. Il en est de m�me si l'on
      sp�cifie RewriteOptions Inherit dans toutes les
      configurations enfants. Voir l'option Inherit pour
      plus de d�tails � propos de la mani�re dont les relations
      parent-enfants sont trait�es.
      Cette option est disponible � partir
      de la version 2.4.8 du serveur HTTP Apache.
InheritDownBeforeL'effet de cette option est �quivalent � celui de l'option
      InheritDown ci-dessus, mais les r�gles de la
      configuration parente s'appliquent avant toute
      r�gle de la configuration enfant.
      Cette option est disponible � partir
      de la version 2.4.8 du serveur HTTP Apache.
IgnoreInheritSi cette option est activ�e, les configurations courante et
      enfants ignoreront toute r�gle h�rit�e d'une configuration parente
      via les options InheritDown ou
      InheritDownBefore.
      Cette option est disponible � partir
      de la version 2.4.8 du serveur HTTP Apache.
AllowNoSlashPar d�faut, mod_rewrite ignore les URLs qui
      correspondent � un r�pertoire sur disque, mais ne comportent pas
      de slash final, afin que le module mod_dir
      redirige le client vers l'URL canonique avec un slash final.
Lorsque la directive DirectorySlash est d�finie � off, il
      est possible de sp�cifier l'option AllowNoSlash pour
      s'assurer que les r�gles de r��criture ne soient plus ignor�es.
      Si on le souhaite, cette option permet de faire s'appliquer des
      r�gles de r��criture qui correspondent � un r�pertoire sans slash
      final au sein de fichiers .htaccess.
      Elle est disponible �
      partir de la version 2.4.0 du serveur HTTP Apache.
AllowAnyURIA partir de la version 2.2.22 de httpd, lorsqu'une directive RewriteRule se situe dans un
      contexte de serveur virtuel ou de serveur principal,
      mod_rewrite ne traitera les r�gles de r��criture
      que si l'URI de la requ�te respecte la syntaxe d'un chemin URL. Ceci permet
      d'�viter certains probl�mes de s�curit� o� des r�gles
      particuli�res pourraient permettre  des d�veloppements de mod�les
      inattendus (voir CVE-2011-3368
      et CVE-2011-4317).
      Pour s'affranchir de la restriction relative � la syntaxe des chemins URL, on peut
      utiliser l'option AllowAnyURI, afin de permettre �
      mod_rewrite d'appliquer le jeu de r�gles � toute
      cha�ne de requ�te URI, sans v�rifier si cette derni�re respecte la
      grammaire des chemins URL d�finie dans la sp�cification HTTP.
      Disponible depuis la version 2.4.3 du serveur HTTP Apache.
L'utilisation de cette option rendra le serveur vuln�rable �
      certains probl�mes de s�curit� si les r�gles de r��critures
      concern�es n'ont pas �t� r�dig�es avec soin. Il est par cons�quent
      fortement recommand� de ne pas utiliser cette
      option. En particulier, pr�tez attention aux cha�nes en entr�e contenant le
      caract�re '@', qui peuvent modifier l'interpr�tation
      de l'URI r��crite, comme indiqu� dans les liens ci-dessus.
MergeBaseAvec cette option, la valeur de la directive RewriteBase est copi�e depuis le
      r�pertoire o� elle est explicitement d�finie dans tout
      sous-r�pertoire qui ne d�finit pas sa propre directive RewriteBase. C'�tait le
      comportement par d�faut de la version 2.4.0 � la version 2.4.3, et
      cette option permet de le r�tablir � partir de la version 2.4.4 du
      serveur HTTP Apache.
| Description: | D�finit les r�gles pour le moteur de r��criture | 
|---|---|
| Syntaxe: | RewriteRule
      Mod�le Substitution [drapeaux] | 
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess | 
| AllowOverride: | FileInfo | 
| Statut: | Extension | 
| Module: | mod_rewrite | 
La directive RewriteRule est le
      v�ritable cheval de trait de la r��criture. La directive peut
      appara�tre plusieurs fois, chaque instance d�finissant une
      r�gle de r��criture particuli�re. L'ordre dans lequel ces r�gles
      sont d�finies est important - il s'agit de l'ordre dans lequel
      les r�gles seront appliqu�es au cours du processus de
      r��criture.
Mod�le est une expression rationnelle compatible perl. Dans la premi�re r�gle de r��criture, l'expression est compar�e au (%-decoded) chemin de l'URL (ou au chemin fichier, en fonction du contexte) de la requ�te. Les expressions suivantes sont compar�es � la sortie de la derni�re r�gle de r��criture qui correspondait.
Dans un contexte de serveur virtuel VirtualHost, le mod�le est tout
      d'abord compar� � la portion de l'URL situ�e entre le nom d'h�te
      �ventuellement accompagn� du port, et la cha�ne de param�tres (par
      exemple "/app1/index.html").
Dans les contextes de r�pertoire Directory et htaccess, le
      mod�le est tout d'abord compar� au chemin du syst�me
      de fichiers, apr�s suppression du pr�fixe ou chemin de base
      ayant conduit le serveur vers la r�gle RewriteRule (par
      exemple "app1/index.html" ou
      "index.html" selon l'endroit o� les directives sont d�finies).
Si vous souhaitez faire une comparaison sur le nom
      d'h�te, le port, ou la cha�ne de requ�te, utilisez une
      directive RewriteCond
      comportant respectivement les variables
      %{HTTP_HOST}, %{SERVER_PORT}, ou
      %{QUERY_STRING}.
<Directory> est un peu plus
complexe.RewriteEngine On" et
"Options FollowSymLinks". Si l'administrateur a d�sactiv�
la possibilit� de modifier l'option FollowSymLinks au
niveau du r�pertoire d'un utilisateur, vous ne pouvez pas utiliser le
moteur de r��criture. Cette restriction a �t� instaur�e � des fins de
s�curit�..htaccess, le chemin de base du r�pertoire courant (qui est
toujours le m�me pour ce m�me r�pertoire) est automatiquement
supprim� au cours de la comparaison avec le mod�le de la r�gle
de r��criture, et automatiquement ajout� lorsqu'une
substitution relative (ne d�butant pas par un slash ou un nom de
protocole) arrive � la fin d'un jeu de r�gles. Voir la directive
RewriteBase pour plus de
d�tails � propos de l'ajout du pr�fixe apr�s les substitutions
relatives.%{REQUEST_URI} dans la directive
RewriteCond.^/ ne correspondra jamais dans un contexte de r�pertoire.<Location> et <Files>, elles n'y sont pas prises en compte, et
n'y sont � priori d'aucune utilit�.Pour quelques conseils � propos des expressions rationnelles, voir le document Introduction � mod_rewrite.
Dans mod_rewrite, on peut aussi utiliser le caract�re NON
      ('!') comme pr�fixe de mod�le. Ceci vous permet
      d'inverser la signification d'un mod�le, soit pour dire
      ``si l'URL consid�r�e ne correspond PAS �
      ce mod�le''. Le caract�re NON peut donc �tre utilis� �
      titre exceptionnel, lorsqu'il est plus simple d'effectuer une
      comparaison avec le mod�le invers�, ou dans la derni�re r�gle
      par d�faut.
$N dans la cha�ne de
substitution !
Dans une r�gle de r��criture, Substitution est la cha�ne de caract�res qui remplace le chemin de l'URL original qui correspondait au Mod�le. Substitution peut �tre :
DocumentRoot vers la ressource qui
	doit �tre servie. Notez que mod_rewrite
	essaie de deviner si vous avez sp�cifi� un chemin du syst�me
	de fichiers ou un chemin d'URL en v�rifiant si la premi�re
	partie du chemin existe � la racine du syst�me de fichiers.
	Par exemple, si vous avez sp�cifi� comme cha�ne de
	Substitution /www/file.html, cette
	derni�re sera trait�e comme un chemin d'URL � moins
	qu'un r�pertoire nomm� www n'existe � la racine
	de votre syst�me de fichiers (ou dans le cas d'une
	r��criture au sein d'un fichier .htaccess,
	relativement � la racine des documents), auquel cas la cha�ne de
	substitution sera trait�e comme un chemin du syst�me de
	fichiers. Si vous d�sirez que d'autres directives de
	correspondance d'URL (comme la directive Alias) soient appliqu�es au
	chemin d'URL r�sultant, utilisez le drapeau [PT]
	comme d�crit ci-dessous.mod_rewrite v�rifie si le nom d'h�te
	correspond � celui de l'h�te local. Si c'est le cas, le
	protocole et le nom d'h�te sont supprim�s, et ce qui reste est
	trait� comme un chemin d'URL. Dans le cas contraire, une
	redirection externe vers l'URL indiqu�e est effectu�e. Pour
	forcer une redirection externe vers l'h�te local, voir le
	drapeau [R] ci-dessous.- (tiret)En plus du texte, la cha�ne Substition peut comporter :
$N) vers le mod�le
	d'une directive RewriteRule%N) vers le dernier
	mod�le d'une directive RewriteCond qui correspondait%{VARNAME})${nom correspondance:cl�|d�faut})Les r�f�rences arri�res sont des identificateurs de la forme
      $N (N=0..9), qui
      seront remplac�s par le contenu du N�me groupe
      du Mod�le qui correspondait. Les variables du serveur
      sont les m�mes que dans la Cha�ne de test d'une
      directive RewriteCond. Les fonctions de comparaison
      sont issues de la directive RewriteMap dans la
      section de laquelle elles sont d�crites. Ces trois types de
      variables sont �valu�es dans l'ordre ci-dessus.
Chaque r�gle de r��criture s'applique au r�sultat de la r�gle
       pr�c�dente, selon l'ordre dans lequel elles ont �t� d�finies dans
       le fichier de configuration. Le chemin de l'URL ou du syst�me de fichier (voir
       ci-dessus Qu'est-ce qui est
       compar� ?) est int�gralement
      remplac�e par la cha�ne de Substitution et le
      processus de r��criture se poursuit jusqu'� ce que toutes les
      r�gles aient �t� appliqu�es, ou qu'il soit explicitement stopp�
      par un drapeau L,
      ou par un autre drapeau qui implique un arr�t imm�diat, comme
      END ou
      F.
Par d�faut, la cha�ne de requ�te est transmise sans
      modification. Vous pouvez cependant cr�er dans la cha�ne de
      substitution des URLs dont une partie constitue une cha�ne de
      requ�te. Pour cela, ajoutez simplement un point d'interrogation
      dans la cha�ne de substitution pour indiquer que le texte qui
      suit doit �tre r�inject� dans la cha�ne de requ�te. Pour
      supprimer une cha�ne de requ�te, terminez simplement la cha�ne de
      substitution par un point d'interrogation. Pour combiner les
      nouvelles cha�nes de requ�te avec les anciennes, utilisez le
      drapeau [QSA].
En outre, vous pouvez sp�cifier des actions sp�ciales � effectuer en ajoutant
      des
      [drapeaux]
      comme troisi�me argument de la directive
      RewriteRule. S�par�s par des virgules au sein d'une
      liste encadr�e par des crochets, les drapeaux peuvent
      �tre choisis dans la table suivante. Vous trouverez plus de
      d�tails, et des exemples pour chaque drapeau dans le document � propos des drapeaux de
      r��criture.
| Drapeaux et syntaxe | Fonction | 
|---|---|
| B | Echappe les caract�res non-alphanum�riques avant d'appliquer la transformation. d�tails ... | 
| chain|C | La r�gle est cha�n�e avec la r�gle suivante. Si la r�gle �choue, la ou les r�gles avec lesquelles elle est est cha�n�e seront saut�es. d�tails ... | 
| cookie|CO=NAME:VAL | D�finit un cookie au niveau du navigateur client. La syntaxe compl�te est : CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] details ... d�tails ... | 
| discardpath|DPI | Supprime la partie PATH_INFO de l'URI r��crit. d�tails ... | 
| END | Stoppe le processus de r��criture imm�diatement et n'applique plus aucune r�gle. Emp�che aussi l'application ult�rieure de r�gles de r��criture dans les contextes de r�pertoire et de fichier .htaccess (disponible � partir de la version 2.3.9 du serveur HTTP Apache). d�tails ... | 
| env|E=[!]VAR[:VAL] | D�finit la variable d'environnement VAR (� la valeur VAL si elle est fournie). La variante !VAR annule la d�finition de la variable VAR.d�tails ... | 
| forbidden|F | Renvoie une r�ponse 403 FORBIDDEN au navigateur client. d�tails ... | 
| gone|G | Renvoie un message d'erreur 410 GONE au navigateur client. d�tails ... | 
| Handler|H=Gestionnaire de contenu | L'URI r�sultant est envoy� au Gestionnaire de contenu pour traitement. d�tails ... | 
| last|L | Arr�te le processus de r��criture imm�diatement et n'applique plus aucune r�gle. Pr�tez une attention particuli�re aux mises en garde concernant les contextes de niveau r�pertoire et .htaccess (voir aussi le drapeau END). d�tails ... | 
| next|N | R�ex�cute le processus de r��criture � partir de la premi�re r�gle, en utilisant le r�sultat du jeu de r�gles, sous r�serve qu'il y ait un point de d�part. d�tails ... | 
| nocase|NC | Rend la comparaison entre mod�les insensible � la casse. d�tails ... | 
| noescape|NE | Emp�che mod_rewrite d'effectuer un �chappement hexad�cimal des caract�res sp�ciaux dans le r�sultat de la r��criture. d�tails ... | 
| nosubreq|NS | La r�gle est saut�e si la requ�te courante est une sous-requ�te interne. d�tails ... | 
| proxy|P | Force l'envoi en interne de l'URL de substitution en tant que requ�te mandataire. d�tails ... | 
| passthrough|PT | L'URI r�sultant est repass� au moteur de mise en
	correspondance des URLs pour y �tre trait� par d'autres
	traducteurs URI-vers-nom de fichier, comme Alias ou
	Redirect. d�tails ... | 
    
| qsappend|QSA | Ajoute toute cha�ne de param�tres pr�sente dans l'URL de la requ�te originale � toute cha�ne de param�tres cr��e dans la cible de r��criture. d�tails ... | 
| qsdiscard|QSD | Supprime toute cha�ne de param�tres de l'URI entrant. d�tails ... | 
| redirect|R[=code] | Force une redirection externe, avec un code de statut HTTP optionnel. d�tails ... | 
| skip|S=nombre | Si la r�gle courante s'applique, le moteur de r��criture doit sauter les nombre r�gles suivantes. d�tails ... | 
| type|T=MIME-type | Force l'attribution du Type-MIME sp�cifi� au fichier cible. d�tails ... | 
 Quand la cha�ne de substitution commence par quelque chose comme
"/~user" (de mani�re explicite ou par r�f�rences arri�res), mod_rewrite
d�veloppe le r�pertoire home sans tenir compte de la pr�sence ou de la
configuration du module mod_userdir.
 Ce d�veloppement n'est pas effectu� si le drapeau PT est
utilis� dans la directive RewriteRule
Voici toutes les combinaisons de substitution et leurs significations :
Dans la configuration au niveau du serveur principal
      (apache2.conf)
       pour la requ�te ``GET
      /chemin/infochemin'':
      
| R�gle | R�sultat de la substitution | 
|---|---|
| ^/un_chemin(.*) autre_chemin$1 | invalide, non support� | 
| ^/un_chemin(.*) autre_chemin$1 [R] | invalide, non support� | 
| ^/un_chemin(.*) autre_chemin$1 [P] | invalide, non support� | 
| ^/un_chemin(.*) /autre_chemin$1 | /autre_chemin/info_chemin | 
| ^/un_chemin(.*) /autre_chemin$1 [R] | http://cet_hote/autre_chemin/info_chemin via une redirection externe | 
| ^/un_chemin(.*) /autre_chemin$1 [P] | sans objet, non support� | 
| ^/un_chemin(.*) http://cet_hote/autre_chemin$1 | /autre_chemin/info_chemin | 
| ^/un_chemin(.*) http://cet_hote/autre_chemin$1 [R] | http://cet_hote/autre_chemin/info_chemin via une redirection externe | 
| ^/un_chemin(.*) http://cet_hote/autre_chemin$1 [P] | sans objet, non support� | 
| ^/un_chemin(.*) http://autre_hote/autre_chemin$1 | http://autre_hote/autre_chemin/info_chemin via une redirection externe | 
| ^/un_chemin(.*) http://autre_hote/autre_chemin$1 [R] | http://autre_hote/autre_chemin/info_chemin (le drapeau [R] est redondant) | 
| ^/somepath(.*) http://otherhost/otherpath$1 [P] | http://otherhost/otherpath/pathinfo via internal proxy | 
Dans une configuration de niveau r�pertoire pour
      /chemin
       (/chemin/physique/vers/chemin/.htacccess, avec
      RewriteBase /chemin)
       pour la requ�te ``GET
      /chemin/chemin-local/infochemin'':
     
| R�gle | R�sultat de la substitution | 
|---|---|
| ^chemin-local(.*) autre-chemin$1 | /chemin/autre-chemin/infochemin | 
| ^chemin-local(.*) autre-chemin$1 [R] | http://cet-h�te/chemin/autre-chemin/infochemin via redirection externe | 
| ^chemin-local(.*) autre-chemin$1 [P] | n'a pas lieu d'�tre, non support� | 
| ^chemin-local(.*) /autre-chemin$1 | /autre-chemin/infochemin | 
| ^chemin-local(.*) /autre-chemin$1 [R] | http://cet-h�te/autre-chemin/infochemin via redirection externe | 
| ^chemin-local(.*) /autre-chemin$1 [P] | n'a pas lieu d'�tre, non support� | 
| ^chemin-local(.*) http://cet-h�te/autre-chemin$1 | /autre-chemin/infochemin | 
| ^chemin-local(.*) http://cet-h�te/autre-chemin$1 [R] | http://cet-h�te/autre-chemin/infochemin via redirection externe | 
| ^chemin-local(.*) http://cet-h�te/autre-chemin$1 [P] | n'a pas lieu d'�tre, non support� | 
| ^chemin-local(.*) http://autre h�te/autre-chemin$1 | http://autre h�te/autre-chemin/infochemin via redirection externe | 
| ^chemin-local(.*) http://autre h�te/autre-chemin$1 [R] | http://autre h�te/autre-chemin/infochemin via redirection externe (le drapeau [R] est redondant) | 
| ^chemin-local(.*) http://autre h�te/autre-chemin$1 [P] | http://autre h�te/autre-chemin/infochemin via un mandataire interne |