This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>mod_rewrite - Serveur Apache HTTP</title>
+<title>mod_rewrite - Serveur Apache HTTP Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
+<script src="../style/scripts/prettify.min.js" type="text/javascript">
+</script>
+
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_rewrite.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Ce module fournit un moteur de réécriture à base de
règles permettant de réécrire les URLs des requêtes
à la volée</td></tr>
<p>Le module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> utilise un moteur de
réécriture à base de règles, basé sur un interpréteur
- d'expressions rationnelles, pour réécrire les URLs à la volée. Par
+ d'expressions rationnelles PCRE, pour réécrire les URLs à la volée. Par
défaut, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 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
<h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li>
-</ul></div>
+</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="logging" id="logging">Journalisation</a></h2>
supérieur à <code>trace2</code> qu'à des fins de débogage !
</div>
- <div class="example"><h3>Exemple</h3><p><code>
- LogLevel alert rewrite:trace3
- </code></p></div>
+ <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre>
+</div>
<div class="note"><h3>RewriteLog</h3>
<p>Ceux qui sont familiers avec les versions précédentes de
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit l'URL de base pour les réécritures au niveau
répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteBase <em>chemin URL</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteBase <em>chemin_URL</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Pas de valeur par défaut</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
</table>
- <p>La directive <code class="directive">RewriteBase</code> définit
- explicitement le chemin URL de base (et non le chemin du
- répertoire dans le système de fichiers !) pour les réécritures dans un contexte
- de répertoire dont le résultat est la substitution d'un
- chemin relatif. Lorsque vous utilisez une directive <code class="directive"><a href="#rewriterule">RewriteRule</a></code> dans un fichier
- <code>.htaccess</code>, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> enlève le
- préfixe de répertoire local avant d'effectuer le traitement, puis
- réécrit ce qui reste de l'URL. Lorsque la réécriture est terminée,
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ajoute automatiquement le préfixe de
- répertoire local (ou la valeur de la directive
- <code class="directive">RewriteBase</code> si cette dernière est définie)
- à la chaîne de substitution avant de la remettre à disposition du
- serveur, comme s'il s'agissait de l'URL d'origine.</p>
-
- <p>Cette directive est <em>requise</em> pour les réécritures
- dans un contexte de répertoire défini via la directive
- <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> lorsque la
- substitution utilise un chemin relatif.</p>
-
- <p>Si votre chemin URL n'existe pas réellement dans le système de
- fichiers, ou ne trouve pas directement sous le répertoire défini
- par la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>, vous devez utiliser la
- directive <code class="directive">RewriteBase</code> dans chaque fichier
- <code>.htaccess</code> où vous voulez utiliser des directives <code class="directive"><a href="#rewriterule">RewriteRule</a></code>.</p>
-
- <p>L'exemple ci-dessous montre comment faire correspondre
- http://example.com/mon-appli/index.html à
- /home/www/exemple/nouveau_site.html dans un fichier
- <code>.htaccess</code>. On suppose que le contenu disponible à
- http://example.com/ se situe sur le disque à
- /home/www/exemple/.</p>
-
-<div class="example"><pre>
-RewriteEngine On
-# Le chemin URL utilisé pour arriver dans ce contexte, et non le chemin
-# du système de fichiers
-RewriteBase /mon-appli/
-RewriteRule ^index\.html$ nouveau_site.html
-</pre></div>
+ <p>La directive <code class="directive">RewriteBase</code> permet de
+ spécifier le préfixe d'URL à utiliser dans un contexte de
+ répertoire (htaccess) pour les directives
+ <code class="directive">RewriteRule</code> qui réécrivent vers un chemin
+ relatif.</p>
+ <p>Cette directive est <em>obligatoire</em> 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 :</p>
+ <ul>
+ <li>La requête initiale, ainsi que la substitution, sont dans
+ la <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> (c'est à
+ dire que pour y accéder, il n'est pas nécessaire d'utiliser
+ une directive telle qu'<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>).</li>
+ <li>Le chemin du système de fichiers vers le répertoire
+ contenant la <code class="directive">RewriteRule</code>, suffixé par
+ la substitution relative est aussi valide en tant qu'URL sur
+ le serveur (ce qui est rare).</li>
+ </ul>
+
+<p>Dans l'exemple ci-dessous, la directive
+<code class="directive">RewriteBase</code> 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.</p>
+
+<pre class="prettyprint lang-config">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></pre>
</div>
la réécriture soit effectuée
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> RewriteCond
- <em>chaîne de test</em> <em>expression de comparaison</em></code></td></tr>
+ <em>chaîne_de_test</em> <em>expression_de_comparaison</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr>
<td>
- HTTP_USER_AGENT<br />
- HTTP_REFERER<br />
+ HTTP_ACCEPT<br />
HTTP_COOKIE<br />
HTTP_FORWARDED<br />
HTTP_HOST<br />
HTTP_PROXY_CONNECTION<br />
- HTTP_ACCEPT<br />
+ HTTP_REFERER<br />
+ HTTP_USER_AGENT<br />
</td>
<td>
+ AUTH_TYPE<br />
+ CONN_REMOTE_ADDR<br />
+ CONTEXT_PREFIX<br />
+ CONTEXT_DOCUMENT_ROOT<br />
+ IPV6<br />
+ PATH_INFO<br />
+ QUERY_STRING<br />
REMOTE_ADDR<br />
REMOTE_HOST<br />
+ REMOTE_IDENT<br />
REMOTE_PORT<br />
REMOTE_USER<br />
- REMOTE_IDENT<br />
REQUEST_METHOD<br />
SCRIPT_FILENAME<br />
- PATH_INFO<br />
- QUERY_STRING<br />
- AUTH_TYPE<br />
</td>
<td />
<tr>
<td>
DOCUMENT_ROOT<br />
+ SCRIPT_GROUP<br />
+ SCRIPT_USER<br />
+ SERVER_ADDR<br />
SERVER_ADMIN<br />
SERVER_NAME<br />
- SERVER_ADDR<br />
SERVER_PORT<br />
SERVER_PROTOCOL<br />
SERVER_SOFTWARE<br />
<td>
API_VERSION<br />
- THE_REQUEST<br />
- REQUEST_URI<br />
- REQUEST_FILENAME<br />
- IS_SUBREQ<br />
+ CONN_REMOTE_ADDR<br />
HTTPS<br />
- REQUEST_SCHEME<br />
+ IS_SUBREQ<br />
+ REMOTE_ADDR<br />
+ REQUEST_FILENAME<br />
+ REQUEST_SCHEME<br />
+ REQUEST_URI<br />
+ THE_REQUEST<br />
</td>
</tr>
</table>
<p>Ces variables correspondent toutes aux en-têtes MIME
HTTP de mêmes noms, au variables C du serveur HTTP Apache, ou
aux champs <code>struct tm</code> du système Unix. La
- plupart d'entre elles sont documentées ailleurs dans le
- manuel ou dans la spécification CGI.</p>
+ plupart d'entre elles sont documentées <a href="../expr.html#vars">ici</a>, dans la
+ spécification CGI ou ailleurs dans le
+ manuel.</p>
<p>SERVER_NAME et SERVER_PORT dépendent respectivement
des valeurs des directives <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code> et <code class="directive"><a href="../mod/core.html#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code>.</p>
spécifiques à mod_rewrite, ou trouve les suivantes :</p>
<div class="note">
<dl>
- <dt><code>IS_SUBREQ</code></dt>
-
- <dd>Contient le texte "true" si la requête en cours
- de traitement est une sous-requête, "false" dans le
- cas contraire. Une sous-requête est générée quand un
- module a besoin de se référer à des fichiers ou URIs
- addidionnels pour pouvoir mener à bien sa tâche.</dd>
-
<dt><code>API_VERSION</code></dt>
<dd>C'est la version de l'API des modules Apache httpd
il s'agit de la version 19990320:10), mais intéresse
principalement les auteurs de modules.</dd>
- <dt><code>THE_REQUEST</code></dt>
+ <dt><code>CONN_REMOTE_ADDR</code></dt>
- <dd>La ligne de requête HTTP complète envoyée par le
- navigateur au serveur (par exemple, "<code>GET
- /index.html HTTP/1.1</code>"), à 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.</dd>
+ <dd>A partir de la version 2.4.8 : l'adresse IP distante de
+ la connexion (voir le module
+ <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>).</dd>
- <dt><code>REQUEST_URI</code></dt>
+ <dt><code>HTTPS</code></dt>
- <dd>La partie chemin de l'URI de la requête, comme
- "/index.html". En particulier, ceci exclut la chaîne
- de paramètres qui est quant à elle disponible via sa
- propre variable <code>QUERY_STRING</code>.</dd>
+ <dd>Contient le texte "on" si la connexion
+ utilise SSL/TLS, "off" dans le cas contraire
+ (Cette variable peut être utilisée sans problème, que
+ <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> soit chargé ou non).</dd>
+
+ <dt><code>IS_SUBREQ</code></dt>
+
+ <dd>Contient le texte "true" si la requête en cours
+ de traitement est une sous-requête, "false" dans le
+ cas contraire. Une sous-requête est générée quand un
+ module a besoin de se référer à des fichiers ou URIs
+ addidionnels pour pouvoir mener à bien sa tâche.</dd>
+
+ <dt><code>REMOTE_ADDR</code></dt>
+ <dd>L'adresse IP de l'hôte distant (se référer au
+ module <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>).</dd>
<dt><code>REQUEST_FILENAME</code></dt>
au moment où on y fait référence. Dans le cas
contraire, et en particulier dans le cas d'un serveur
virtuel, <code>REQUEST_FILENAME</code> contient la
- valeur de <code>REQUEST_URI</code>.</dd>
-
- <dt><code>HTTPS</code></dt>
-
- <dd>Contient le texte "on" si la connexion
- utilise SSL/TLS, "off" dans le cas contraire
- (Cette variable peut être utilisée sans problème, que
- <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> soit chargé ou non.</dd>
+ valeur de <code>REQUEST_URI</code>. En fonction de la
+ valeur de la directive <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code>, le serveur
+ peut n'utiliser que certains éléments de tête du
+ <code>REQUEST_URI</code> pour déterminer à quel
+ fichier correspond la requête.</dd>
<dt><code>REQUEST_SCHEME</code></dt>
"http" ou "https"). La valeur peut être modifiée par
la directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>.</dd>
+ <dt><code>REQUEST_URI</code></dt>
+
+ <dd>La partie chemin de l'URI de la requête, comme
+ "/index.html". Ceci exclut en particulier la chaîne de
+ paramètres de la requête qui est contenue dans la
+ variable <code>QUERY_STRING</code>.</dd>
+
+ <dt><code>THE_REQUEST</code></dt>
+
+ <dd>La ligne de requête HTTP complète envoyée par le
+ navigateur au serveur (par exemple, "<code>GET
+ /index.html HTTP/1.1</code>"), à 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.</dd>
</dl>
</div>
</li>
</ul>
- <p>Si la <em>chaîne de test</em> contient la valeur spéciale
- <code>expr</code>, <em>expression de comparaison</em> sera traité
- en tant qu'expression rationnelle de type <a href="../expr.html">ap_expr</a>.</p>
+ <p>Si la <em>chaîne_de_test</em> contient la valeur spéciale
+ <code>expr</code>, <em>expression_de_comparaison</em> sera traité
+ en tant qu'expression rationnelle de type <a href="../expr.html">ap_expr</a>. Si des en-têtes HTTP sont
+ référencés dans l'expression rationnelle, et si le drapeau
+ <code>novary</code> n'est pas activé, ils seront ajoutés à
+ l'en-tête Vary.</p>
<p>Autres points à connaître ::</p>
<ol>
</li>
<li>A des fins de référence avant, on peut utiliser,
- <code>%{LA-U:variable}</code>, qui
+ <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a>, qui
permet d'effectuer une sous-requête interne à base d'URL, afin
de déterminer la valeur finale de <em>variable</em>. Ceci permet
d'accéder à la valeur d'une variable pour la réécriture inconnue
</ol>
- <p><em>expression de comparaison</em> est une expression
+ <p><em>expression_de_comparaison</em> est une expression
rationnelle qui est appliquée à l'instance actuelle de
- <em>chaîne de test</em>. <em>chaîne de test</em> est d'abord
+ <em>chaîne_de_test</em>. <em>chaîne_de_test</em> est d'abord
évaluée, puis comparée à
- l'<em>expression de comparaison</em>.</p>
+ l'<em>expression_de_comparaison</em>.</p>
- <p><em>expression de comparaison</em> est en général une
+ <p><em>expression_de_comparaison</em> est en général une
<em>expression rationnelle compatible perl</em>, mais vous
disposez des syntaxes supplémentaires suivantes pour effectuer
- d'autres tests utiles sur <em>chaîne de test</em> :
+ d'autres tests utiles sur <em>chaîne_de_test</em> :
</p>
<ol>
<li>Vous pouvez préfixer l'expression avec un caractère
- '<code>!</code>' (point d'exclamation) pour indiquer une
- expression de <strong>non</strong>-correspondance.</li>
+ '<code>!</code>' (point d'exclamation) pour inverser le résultat
+ de la condition, quelle que soit l'<em>expression de
+ comparaison</em> utilisée.</li>
<li>Vous pouvez effectuer des comparaisons lexicographiques de
chaînes :
lexicographique)<br />
Traite l'<em>expression</em> comme une chaîne de
caractères et la compare lexicographiquement à
- <em>chaîne de test</em>. La condition est satisfaite si
- <em>chaîne de test</em> est inférieure au sens
+ <em>chaîne_de_test</em>. La condition est satisfaite si
+ <em>chaîne_de_test</em> est inférieure au sens
lexicographique à l'<em>expression</em>.</li>
<li>'<strong>>expression</strong>' (supérieur au sens
lexicographique)<br />
Traite l'<em>expression</em> comme une chaîne de
caractères et la compare lexicographiquement à
- <em>chaîne de test</em>. La condition est satisfaite si
- <em>chaîne de test</em> est supérieure au sens
+ <em>chaîne_de_test</em>. La condition est satisfaite si
+ <em>chaîne_de_test</em> est supérieure au sens
lexicographique à l'<em>expression</em>.</li>
<li>'<strong>=expression</strong>' (égal au sens
lexicographique)<br />
Traite l'<em>expression</em> comme une chaîne de
caractères et la compare lexicographiquement à
- <em>chaîne de test</em>. La condition est satisfaite si
- <em>chaîne de test</em> est égale au sens
+ <em>chaîne_de_test</em>. La condition est satisfaite si
+ <em>chaîne_de_test</em> est égale au sens
lexicographique à l'<em>expression</em> (les deux chaînes
sont exactement identiques, caractère pour caractère). Si
<em>expression</em> est <code>""</code> (deux guillemets),
- <em>chaîne de test</em> est comparée à la chaîne vide.</li>
+ <em>chaîne_de_test</em> est comparée à la chaîne vide.</li>
<li>'<strong><=expression de comparaison</strong>' (inférieur ou égal à
au sens lexicographique)<br />
- Considère l'<em>expression de comparaison</em> comme une
+ Considère l'<em>expression_de_comparaison</em> comme une
chaîne de caractères et la compare au sens lexicographique à
- la <em>chaîne de test</em>. Vrai si <em>chaîne de test</em>
- précède lexicographiquement <em>expression de comparaison</em>, ou est
- égale à <em>expression de comparaison</em> (les deux chaînes
+ la <em>chaîne_de_test</em>. Vrai si <em>chaîne_de_test</em>
+ précède lexicographiquement <em>expression_de_comparaison</em>, ou est
+ égale à <em>expression_de_comparaison</em> (les deux chaînes
sont identiques, caractère pour caractère).</li>
<li>'<strong>>=expression de comparaison</strong>'
(supérieur ou égal à au sens lexicographique)<br />
- Considère l'<em>expression de comparaison</em> comme une
+ Considère l'<em>expression_de_comparaison</em> comme une
chaîne de caractères et la compare au sens lexicographique à
- la <em>chaîne de test</em>. Vrai si <em>chaîne de test</em>
- suit lexicographiquement <em>expression de comparaison</em>, ou est
- égale à <em>expression de comparaison</em> (les deux chaînes
+ la <em>chaîne_de_test</em>. Vrai si <em>chaîne_de_test</em>
+ suit lexicographiquement <em>expression_de_comparaison</em>, ou est
+ égale à <em>expression_de_comparaison</em> (les deux chaînes
sont identiques, caractère pour caractère).</li>
</ul></li>
<ul>
<li>'<strong>-eq</strong>' (est numériquement égal à)<br />
- La <em>chaîne de test</em> est considérée comme un entier,
+ La <em>chaîne_de_test</em> est considérée comme un entier,
et est comparée numériquement à l'<em>expression de
comparaison</em>. Vrai si les deux expressions sont
numériquement égales.</li>
<li>'<strong>-ge</strong>' (est numériquement supérieur ou
égal à)<br />
- La <em>chaîne de test</em> est considérée comme un entier,
+ La <em>chaîne_de_test</em> est considérée comme un entier,
et est comparée numériquement à l'<em>expression de
- comparaison</em>. Vrai si <em>chaîne de test</em> est
+ comparaison</em>. Vrai si <em>chaîne_de_test</em> est
numériquement
- supérieure ou égale à <em>expression de comparaison</em>.</li>
+ supérieure ou égale à <em>expression_de_comparaison</em>.</li>
<li>'<strong>-gt</strong>' (est numériquement supérieur à)<br />
- La <em>chaîne de test</em> est considérée comme un entier,
+ La <em>chaîne_de_test</em> est considérée comme un entier,
et est comparée numériquement à l'<em>expression de
- comparaison</em>. Vrai si <em>chaîne de test</em> est
+ comparaison</em>. Vrai si <em>chaîne_de_test</em> est
numériquement
- supérieure à <em>expression de comparaison</em>.</li>
+ supérieure à <em>expression_de_comparaison</em>.</li>
<li>'<strong>-le</strong>' (est numériquement inférieur ou
égal à)<br />
- La <em>chaîne de test</em> est considérée comme un entier,
+ La <em>chaîne_de_test</em> est considérée comme un entier,
et est comparée numériquement à l'<em>expression de
- comparaison</em>. Vrai si <em>chaîne de test</em> est
+ comparaison</em>. Vrai si <em>chaîne_de_test</em> est
numériquement
- inférieure ou égale à <em>expression de comparaison</em>.
+ inférieure ou égale à <em>expression_de_comparaison</em>.
Attention à la confusion avec le drapeau <strong>-l</strong>
en utilisant la variante the <strong>-L</strong> ou
<strong>-h</strong>.</li>
<li>'<strong>-lt</strong>' (est numériquement inférieur à)<br />
- La <em>chaîne de test</em> est considérée comme un entier,
+ La <em>chaîne_de_test</em> est considérée comme un entier,
et est comparée numériquement à l'<em>expression de
- comparaison</em>. Vrai si <em>chaîne de test</em> est
+ comparaison</em>. Vrai si <em>chaîne_de_test</em> est
numériquement
- inférieure à <em>expression de comparaison</em>.
+ inférieure à <em>expression_de_comparaison</em>.
Attention à la confusion avec le drapeau <strong>-l</strong>
en utilisant la variante the <strong>-L</strong> ou
<strong>-h</strong>.</li>
<li>'<strong>-d</strong>' (est un répertoire -
<strong>d</strong>irectory)<br />
- Traite <em>chaîne de test</em> comme un chemin et vérifie
+ Traite <em>chaîne_de_test</em> comme un chemin et vérifie
s'il existe ou pas, et s'il s'agit d'un répertoire.</li>
<li>'<strong>-f</strong>' (est un
<strong>f</strong>ichier régulier)<br />
- Traite <em>chaîne de test</em> comme un chemin et vérifie
+ Traite <em>chaîne_de_test</em> comme un chemin et vérifie
s'il existe ou pas, et s'il s'agit d'un fichier régulier.</li>
<li>'<strong>-F</strong>' (test de l'existence d'un fichier
via une sous-requête)<br />
- Vérifie si <em>chaîne de test</em> est un fichier valide,
+ Vérifie si <em>chaîne_de_test</em> est un fichier 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 - à
Voir <strong>-l</strong>.</li>
<li>'<strong>-l</strong>' (est un lien symbolique)<br />
- Considère la <em>chaîne de test</em> comme un chemin et
+ Considère la <em>chaîne_de_test</em> comme un chemin et
vérifie son existence et si elle est un lien symbolique. On
peut aussi utiliser la convention bash <strong>-L</strong>
ou <strong>-h</strong> lorsqu'il y a risque de confusion
<li>'<strong>-s</strong>' (est un fichier régulier d'une
certaine taille)<br />
- Considère la <em>chaîne de test</em> comme un chemin et
+ Considère la <em>chaîne_de_test</em> comme un chemin et
vérifie son existence et si elle est un fichier régulier
d'une taille supérieure à zéro.</li>
- <li>'<strong>-U</strong>' (test de l'existence d'une
- <strong>U</strong>RL via une sous-requête)<br />
- Vérifie si <em>chaîne de test</em> est une URL valide,
+ <li><p>'<strong>-U</strong>' (test de l'existence d'une
+ URL via une sous-requête)<br />
+ Vérifie si <em>chaîne_de_test</em> 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 !</li>
+ peuvent s'en trouver affectées !</p>
+ <p>Ce drapeau ne renvoie <em>que</em> des informations
+ concernant le contrôle d'accès, l'authentification et
+ l'autorisation. Il ne renvoie <em>pas</em> d'informations
+ concernant le code d'état que le gestionnaire configuré
+ (static file, CGI, proxy, etc...) aurait, quant à lui,
+ retourné.</p></li>
<li>'<strong>-x</strong>' (a l'attribut d'exécution positionné)<br />
- Considère la <em>chaîne de test</em> comme un chemin et
+ Considère la <em>chaîne_de_test</em> comme un chemin et
vérifie son existence et si elle a son attribut d'exécution
positionné. Ce positionnement est déterminé en fonction de
l'OS sous-jacent.</li>
</ul>
-<div class="note"><h3>Note :</h3>
- Tous ces tests peuvent aussi être préfixés par un point
- d'exclamation ('!') pour inverser leur signification.
-</div>
</li>
<li>
- <p>Si la <em>chaîne de test</em> contient la valeur spéciale
+ <p>Si la <em>chaîne_de_test</em> contient la valeur spéciale
<code>expr</code>, la <em>chaîne de comparaison</em> sera
traitée en tant qu'expression rationnelle de type <a href="../expr.html">ap_expr</a>.</p>
non désiré.
</p>
- <div class="example"><p><code>
- RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
- RewriteRule ^/images - [F]
- </code></p></div>
+ <pre class="prettyprint lang-config"> RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
+ RewriteRule ^/images - [F]</pre>
+
</li>
<li>Vous pouvez aussi définir certains drapeaux pour
- l'<em>expression de comparaison</em> en ajoutant ces
+ l'<em>expression_de_comparaison</em> en ajoutant ces
<strong><code>[</code><em>drapeaux</em><code>]</code></strong>
comme troisième argument de la directive
<code>RewriteCond</code>, où <em>drapeaux</em> est un
(<strong>n</strong>o <strong>c</strong>ase)<br />
Rend le test insensible à la casse - il n'est pas fait de
distinction entre majuscules et minuscules, à la fois dans le
- développement de <em>chaîne de test</em> et dans
- <em>expression de comparaison</em>. Ce drapeau n'est pris en
- compte que lors d'une comparaison entre <em>chaîne de test</em>
- et <em>expression de comparaison</em>. Il ne l'est pas pour les
+ développement de <em>chaîne_de_test</em> et dans
+ <em>expression_de_comparaison</em>. Ce drapeau n'est pris en
+ compte que lors d'une comparaison entre <em>chaîne_de_test</em>
+ et <em>expression_de_comparaison</em>. Il ne l'est pas pour les
vérification par sous-requêtes ou sur le système de
fichiers.</li>
Permet de chaîner les conditions de règles avec un OU au
lieu du AND implicite. Exemple typique :
-<div class="example"><pre>
-RewriteCond %{REMOTE_HOST} ^host1 [OR]
+<pre class="prettyprint lang-config">RewriteCond %{REMOTE_HOST} ^host1 [OR]
RewriteCond %{REMOTE_HOST} ^host2 [OR]
RewriteCond %{REMOTE_HOST} ^host3
-RewriteRule ...règles concernant tous ces hôtes...
-</pre></div>
+RewriteRule ...règles concernant tous ces hôtes...</pre>
+
Sans ce drapeau, les paires
condition/règle devraient être écrites trois fois.
l'en-tête ``<code>User-Agent:</code>'' de la requête, vous
pouvez utiliser ce qui suit : </p>
-<div class="example"><pre>
-RewriteCond %{HTTP_USER_AGENT} ^Mozilla
-RewriteRule ^/$ /homepage.max.html [L]
+<pre class="prettyprint lang-config">RewriteCond %{HTTP_USER_AGENT} (iPhone|Blackberry|Android)
+RewriteRule ^/$ /homepage.mobile.html [L]
-RewriteCond %{HTTP_USER_AGENT} ^Lynx
-RewriteRule ^/$ /homepage.min.html [L]
+RewriteRule ^/$ /homepage.std.html [L]</pre>
-RewriteRule ^/$ /homepage.std.html [L]
-</pre></div>
<p>Explications : si vous utilisez un navigateur
- (Netscape Navigator, Mozilla etc) qui s'identifie comme
- 'Mozilla', vous accèderez à la page d'accueil max (qui
- peut contenir des frames, ou d'autres ressources
- particulières).
- Si vous utilisez le navigateur Lynx (qui est un navigateur
- en mode texte), vous accèderez à une page d'accueil min
- (qui peut être une version conçue pour une navigation simple
- basée sur le texte).
- Si aucune de ces conditions n'est satisfaite (vous utilisez tout
- autre navigateur, ou votre navigateur s'identifie de manière non
- standard), vous accèderez à la page d'accueil std
- (standard).</p>
+ qui s'identifie comme un
+ navigateur de plateforme mobile (notez que l'exemple est
+ incomplet car il existe de nombreuses autres plateformes
+ mobiles), c'est la version pour mobile de la page d'accueil qui
+ sera renvoyée. Dans le cas contraire, ce sera la page d'accueil
+ standard.</p>
</div>
mettra pas à jour les variables d'environnement
<code>SCRIPT_URx</code>.</p>
- <p>Pour désactiver le module, il vaut mieux utiliser cette
- directive que commenter toutes les directives <code class="directive"><a href="#rewriterule">RewriteRule</a></code> !</p>
+ <p>Plutôt que de commenter toutes les directives <code class="directive"><a href="#rewriterule">RewriteRule</a></code>, 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.</p>
<p>Notez que les hôtes virtuels n'héritent pas des
configurations de réécriture. Ceci implique que vous devez
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Il est possible de choisir entre plusieurs types de
-bases de données depuis la version 2.0.41 du serveur HTTP Apache</td></tr>
</table>
<p>La directive <code class="directive">RewriteMap</code> définit une
<em>Table de correspondance pour la réécriture</em> que les
<p>Par exemple, vous pouvez définir une directive
<code class="directive">RewriteMap</code> comme suit </p>
- <div class="example"><p><code>
- RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
- </code></p></div>
+ <pre class="prettyprint lang-config">RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt</pre>
+
<p>Vous pourrez ensuite utiliser cette table dans une
directive <code class="directive">RewriteRule</code> comme suit :</p>
- <div class="example"><p><code>
- RewriteRule ^/ex/(.*) ${map-exemple:$1}
- </code></p></div>
+ <pre class="prettyprint lang-config">RewriteRule ^/ex/(.*) ${map-exemple:$1}</pre>
+
<p>Les combinaisons suivantes pour <em>type de correspondance</em>
et <em>source de la correspondance</em>
<dt>prg</dt>
<dd>Appelle un programme externe ou un script pour effectuer la
- réécriture (<a href="../rewrite/rewritemap.html#int">Détails
+ réécriture (<a href="../rewrite/rewritemap.html#prg">Détails
...</a>).</dd>
<dt>dbd or fastdbd</dt>
<dd>Une commande SQL SELECT à exécuter pour rechercher la cible
- de réécriture (<a href="../rewrite/rewritemap.html#int">Détails
+ de réécriture (<a href="../rewrite/rewritemap.html#dbd">Détails
...</a>).</dd>
</dl>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><code>MaxRedirects</code> n'est plus disponible depuis
-la version version 2.1</td></tr>
</table>
<p>La directive <code class="directive">RewriteOptions</code> définit
<p>Même effet que l'option <code>Inherit</code> ci-dessus, mais
les règles spécifiées dans le niveau parent s'appliquent
<strong>avant</strong> les règles spécifiées dans le niveau
- enfant. Disponible depuis la version 2.3.10 du serveur HTTP
- Apache.</p>
+ enfant.<br />
+ Disponible depuis la version 2.3.10 du serveur HTTP Apache.</p>
</dd>
+ <dt><code>InheritDown</code></dt>
+ <dd>
+
+ <p>Si 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 <code>RewriteOptions Inherit</code> dans toutes les
+ configurations enfants. Voir l'option <code>Inherit</code> pour
+ plus de détails à propos de la manière dont les relations
+ parent-enfants sont traitées.<br />
+ Cette option est disponible à partir
+ de la version 2.4.8 du serveur HTTP Apache.</p>
+ </dd>
+
+ <dt><code>InheritDownBefore</code></dt>
+ <dd>
+
+ <p>L'effet de cette option est équivalent à celui de l'option
+ <code>InheritDown</code> ci-dessus, mais les règles de la
+ configuration parente s'appliquent <strong>avant</strong> toute
+ règle de la configuration enfant.<br />
+ Cette option est disponible à partir
+ de la version 2.4.8 du serveur HTTP Apache.</p>
+ </dd>
+
+ <dt><code>IgnoreInherit</code></dt>
+ <dd>
+
+ <p>Si cette option est activée, les configurations courante et
+ enfants ignoreront toute règle héritée d'une configuration parente
+ via les options <code>InheritDown</code> ou
+ <code>InheritDownBefore</code>.<br />
+ Cette option est disponible à partir
+ de la version 2.4.8 du serveur HTTP Apache.</p>
+ </dd>
+
<dt><code>AllowNoSlash</code></dt>
<dd>
<p>Par défaut, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ignore les URLs qui
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 à
+ final au sein de fichiers .htaccess.<br />
+ Elle est disponible à
partir de la version 2.4.0 du serveur HTTP Apache.</p>
</dd>
+ <dt><code>AllowAnyURI</code></dt>
+ <dd>
+
+ <p>A partir de la version 2.2.22 de httpd, lorsqu'une directive <code class="directive"><a href="#rewriterule">RewriteRule</a></code> se situe dans un
+ contexte de <code>serveur virtuel</code> ou de serveur principal,
+ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ne traitera les règles de réécriture
+ que si l'URI de la requête respecte la syntaxe d'un <a href="directive-dict.html#Syntax">chemin URL</a>. 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 <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3368">CVE-2011-3368</a>
+ et <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4317">CVE-2011-4317</a>).
+ Pour s'affranchir de la restriction relative à la syntaxe des chemins URL, on peut
+ utiliser l'option <code>AllowAnyURI</code>, afin de permettre à
+ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 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.<br />
+ Disponible depuis la version 2.4.3 du serveur HTTP Apache.</p>
+
+ <div class="warning">
+ <h3>Avertissement à propos de la sécurité</h3>
+
+ <p>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
+ <strong>fortement recommandé</strong> de ne pas utiliser cette
+ option. En particulier, prêtez attention aux chaînes en entrée contenant le
+ caractère '<code>@</code>', qui peuvent modifier l'interprétation
+ de l'URI réécrite, comme indiqué dans les liens ci-dessus.</p>
+ </div>
+ </dd>
+
+ <dt><code>MergeBase</code></dt>
+ <dd>
+
+ <p>Avec cette option, la valeur de la directive <code class="directive"><a href="#rewritebase">RewriteBase</a></code> est recopiée depuis
+ une valeur explicitement définie dans tout sous-répertoire qui ne
+ définit pas sa propre directive <code class="directive"><a href="#rewritebase">RewriteBase</a></code>. Il s'agissait du
+ comportement par défaut avec les versions 2.4.0 à 2.4.3, et ce
+ drapeau qui permet de retrouver ce comportement est disponible
+ depuis la version 2.4.4 du serveur HTTP Apache.</p>
+ </dd>
+
</dl>
</div>
<a id="regexp" name="regexp">expression rationnelle</a>
compatible perl. Dans la première règle de réécriture,
l'expression est comparée au (%-decoded)
- <a href="./directive-dict.html#Syntax">chemin de l'URL</a> de la
- requête ; les expressions suivantes sont comparées à la sortie de
- la dernière règle de réécriture qui a été appliquée.</p>
+ <a href="directive-dict.html#Syntax">chemin de l'URL</a> (ou au
+ <a href="directive-dict.html#Syntax">chemin fichier</a>, 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.</p>
<div class="note"><h3><a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est comparé ?</a></h3>
<p>Dans les contextes de répertoire <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> et htaccess, le
<em>modèle</em> est tout d'abord comparé au chemin du <em>système
de fichiers</em>, après suppression du préfixe ou chemin de base
- ayant conduit à la règle <code class="directive">RewriteRule</code> (par
+ ayant conduit le serveur vers la règle <code class="directive">RewriteRule</code> (par
exemple "app1/index.html" ou
"index.html" selon l'endroit où les directives sont définies).</p>
<em>Substitution</em> <code>/www/file.html</code>, cette
dernière sera traitée comme un chemin d'URL <em>à moins</em>
qu'un répertoire nommé <code>www</code> n'existe à la racine
- de votre système de fichiers, auquel cas la chaîne de
+ de votre système de fichiers (ou dans le cas d'une
+ réécriture au sein d'un fichier <code>.htaccess</code>,
+ 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 <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>) soient appliquées au
<code>$</code><strong>N</strong> (<strong>N</strong>=0..9), qui
seront remplacés par le contenu du <strong>N</strong>ème groupe
du <em>Modèle</em> qui correspondait. Les variables du serveur
- sont les mêmes que dans la <em>Chaîne de test</em> d'une
+ sont les mêmes que dans la <em>Chaîne_de_test</em> d'une
directive <code>RewriteCond</code>. Les fonctions de comparaison
sont issues de la directive <code>RewriteMap</code> dans la
section de laquelle elles sont décrites. Ces trois types de
<p>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. L'URI du chemin du fichier (voir
+ le fichier de configuration. Le chemin de l'URL ou du système de fichier (voir
ci-dessus <a href="#what_is_matched">Qu'est-ce qui est
comparé ?</a>) est <strong>intégralement
remplacée</strong> par la chaîne de <em>Substitution</em> et le
détails, et des exemples pour chaque drapeau dans le <a href="../rewrite/flags.html">document à propos des drapeaux de
réécriture.</a></p>
- <table class="bordered">
- <tr><th>Drapeaux et syntaxe</th>
+ <table class="bordered"><tr class="header"><th>Drapeaux et syntaxe</th>
<th>Fonction</th>
</tr>
- <tr>
+<tr>
<td>B</td>
- <td>Echappe les caractères non-alphanumériques <em>avant</em>
+ <td>Echappe les caractères non-alphanumériques
+ dans les références arrières <em>avant</em>
d'appliquer la transformation. <em><a href="../rewrite/flags.html#flag_b">détails ...</a></em></td>
</tr>
- <tr>
- <td>chain|C</td>
+<tr class="odd">
+ <td>backrefnoplus|BNP</td>
+ <td>Avec ce drapeau, si les références arrières sont échappées,
+ les espaces seront échappés en %20 au lieu de +. Ceci s'avère
+ utile lorsqu'une référence arrière est utilisée dans la partie
+ chemin, et non dans la chaîne de paramètres de la requête ;
+ pour plus de détails, voir <em><a href="../rewrite/flags.html#flag_bnp">ici.</a></em></td>
+ </tr>
+<tr>
+ <td>chain|C</td>
<td>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. <em><a href="../rewrite/flags.html#flag_c">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>cookie|CO=<em>NAME</em>:<em>VAL</em></td>
<td>Définit un cookie au niveau du navigateur client. La syntaxe
complète est :
<em><a href="../rewrite/flags.html#flag_co">détails ...</a></em>
</td>
</tr>
- <tr>
+<tr>
<td>discardpath|DPI</td>
<td>Supprime la partie PATH_INFO de l'URI réécrit. <em><a href="../rewrite/flags.html#flag_dpi">détails
...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
+ <td>END</td>
+ <td>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). <em><a href="../rewrite/flags.html#flag_end">détails ...</a></em></td>
+ </tr>
+<tr>
<td>env|E=[!]<em>VAR</em>[:<em>VAL</em>]</td>
<td>Définit la variable d'environnement <em>VAR</em> (à la valeur
<em>VAL</em> si elle est fournie). La variante !<em>VAR</em>
annule la définition de la variable <em>VAR</em>.<em><a href="../rewrite/flags.html#flag_e">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>forbidden|F</td>
<td>Renvoie une réponse 403 FORBIDDEN au navigateur client.
<em><a href="../rewrite/flags.html#flag_f">détails ...</a></em></td>
</tr>
- <tr>
+<tr>
<td>gone|G</td>
<td>Renvoie un message d'erreur 410 GONE au navigateur client. <em><a href="../rewrite/flags.html#flag_g">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>Handler|H=<em>Gestionnaire de contenu</em></td>
<td>L'URI résultant est envoyé au <em>Gestionnaire de
contenu</em> pour traitement. <em><a href="../rewrite/flags.html#flag_h">détails ...</a></em></td>
</tr>
- <tr>
+<tr>
<td>last|L</td>
<td>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). <em><a href="../rewrite/flags.html#flag_l">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>next|N</td>
<td>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. <em><a href="../rewrite/flags.html#flag_n">détails
...</a></em></td>
</tr>
- <tr>
+<tr>
<td>nocase|NC</td>
<td>Rend la comparaison entre modèles insensible à la casse.
<em><a href="../rewrite/flags.html#flag_nc">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>noescape|NE</td>
<td>Empêche mod_rewrite d'effectuer un échappement hexadécimal
des caractères spéciaux dans le résultat de la réécriture. <em><a href="../rewrite/flags.html#flag_ne">détails ...</a></em></td>
</tr>
- <tr>
+<tr>
<td>nosubreq|NS</td>
<td>La règle est sautée si la requête courante est une
sous-requête interne. <em><a href="../rewrite/flags.html#flag_ns">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>proxy|P</td>
<td>Force l'envoi en interne de l'URL de substitution en tant
que requête mandataire. <em><a href="../rewrite/flags.html#flag_p">détails
...</a></em></td>
</tr>
- <tr>
+<tr>
<td>passthrough|PT</td>
<td>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 <code>Alias</code> ou
<code>Redirect</code>. <em><a href="../rewrite/flags.html#flag_pt">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>qsappend|QSA</td>
- <td>Ajoute toute chaîne de paramètres créée dans la cible de
- réécriture à toute chaîne de paramètres présente dans l'URL de la
- requête originale. <em><a href="../rewrite/flags.html#flag_qsa">détails ...</a></em></td>
+ <td>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. <em><a href="../rewrite/flags.html#flag_qsa">détails ...</a></em></td>
</tr>
- <tr>
+<tr>
<td>qsdiscard|QSD</td>
<td>Supprime toute chaîne de paramètres de l'URI entrant. <em><a href="../rewrite/flags.html#flag_qsd">détails
...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>redirect|R[=<em>code</em>]</td>
<td>Force une redirection externe, avec un code de statut HTTP
optionnel. <em><a href="../rewrite/flags.html#flag_r">détails ...</a></em>
</td>
</tr>
- <tr>
- <td>END</td>
- <td>Arrête le processus de réécriture immédiatement et
- n'applique plus aucune règle. Empêche aussi l'exécution
- ultérieure de règles de réécriture dans des contextes de
- répertoire et des fichiers .htaccess (disponible depuis la
- version 2.3.9) <em><a href="../rewrite/flags.html#flag_l">détails ...</a></em></td>
- </tr>
- <tr>
+<tr>
<td>skip|S=<em>nombre</em></td>
<td>Si la règle courante s'applique, le moteur de réécriture
doit sauter les <em>nombre</em> règles suivantes. <em><a href="../rewrite/flags.html#flag_s">détails ...</a></em></td>
</tr>
- <tr>
+<tr class="odd">
<td>type|T=<em>MIME-type</em></td>
<td>Force l'attribution du <a class="glossarylink" href="../glossary.html#type-mime" title="voir glossaire">Type-MIME</a>
spécifié au fichier cible. <em><a href="../rewrite/flags.html#flag_t">détails ...</a></em></td>
</tr>
- </table>
+</table>
<div class="note"><h3>Développement du répertoire home</h3>
<p> Quand la chaîne de substitution commence par quelque chose comme
/chemin/infochemin</code>'':</strong><br />
</p>
-<table class="bordered">
-<tr>
+<table class="bordered"><tr class="header">
<th>Règle</th>
<th>Résultat de la substitution</th>
</tr>
-
<tr>
<td>^/un_chemin(.*) autre_chemin$1</td>
<td>invalide, non supporté</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/un_chemin(.*) autre_chemin$1 [R]</td>
<td>invalide, non supporté</td>
</tr>
-
<tr>
<td>^/un_chemin(.*) autre_chemin$1 [P]</td>
<td>invalide, non supporté</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/un_chemin(.*) /autre_chemin$1</td>
<td>/autre_chemin/info_chemin</td>
</tr>
-
<tr>
<td>^/un_chemin(.*) /autre_chemin$1 [R]</td>
<td>http://cet_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/un_chemin(.*) /autre_chemin$1 [P]</td>
<td>sans objet, non supporté</td>
</tr>
-
<tr>
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1</td>
<td>/autre_chemin/info_chemin</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1 [R]</td>
<td>http://cet_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
-
<tr>
<td>^/un_chemin(.*) http://cet_hote/autre_chemin$1 [P]</td>
<td>sans objet, non supporté</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/un_chemin(.*) http://autre_hote/autre_chemin$1</td>
<td>http://autre_hote/autre_chemin/info_chemin via une redirection externe</td>
</tr>
-
<tr>
<td>^/un_chemin(.*) http://autre_hote/autre_chemin$1 [R]</td>
<td>http://autre_hote/autre_chemin/info_chemin (le drapeau [R] est
redondant)</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^/somepath(.*) http://otherhost/otherpath$1 [P]</td>
<td>http://otherhost/otherpath/pathinfo via internal proxy</td>
</tr>
/chemin/chemin-local/infochemin</code>'':</strong><br />
</p>
-<table class="bordered">
-
-<tr>
+<table class="bordered"><tr class="header">
<th>Règle</th>
<th>Résultat de la substitution</th>
</tr>
-
<tr>
<td>^chemin-local(.*) autre-chemin$1</td>
<td>/chemin/autre-chemin/infochemin</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) autre-chemin$1 [R]</td>
<td>http://cet-hôte/chemin/autre-chemin/infochemin via redirection
externe</td>
</tr>
-
<tr>
<td>^chemin-local(.*) autre-chemin$1 [P]</td>
<td>n'a pas lieu d'être, non supporté</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) /autre-chemin$1</td>
<td>/autre-chemin/infochemin</td>
</tr>
-
<tr>
<td>^chemin-local(.*) /autre-chemin$1 [R]</td>
<td>http://cet-hôte/autre-chemin/infochemin via redirection externe</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) /autre-chemin$1 [P]</td>
<td>n'a pas lieu d'être, non supporté</td>
</tr>
-
<tr>
<td>^chemin-local(.*) http://cet-hôte/autre-chemin$1</td>
<td>/autre-chemin/infochemin</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) http://cet-hôte/autre-chemin$1 [R]</td>
<td>http://cet-hôte/autre-chemin/infochemin via redirection externe</td>
</tr>
-
<tr>
<td>^chemin-local(.*) http://cet-hôte/autre-chemin$1 [P]</td>
<td>n'a pas lieu d'être, non supporté</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) http://autre hôte/autre-chemin$1</td>
<td>http://autre hôte/autre-chemin/infochemin via redirection externe</td>
</tr>
-
<tr>
<td>^chemin-local(.*) http://autre hôte/autre-chemin$1 [R]</td>
<td>http://autre hôte/autre-chemin/infochemin via redirection externe
(le drapeau [R] est redondant)</td>
</tr>
-
-<tr>
+<tr class="odd">
<td>^chemin-local(.*) http://autre hôte/autre-chemin$1 [P]</td>
<td>http://autre hôte/autre-chemin/infochemin via un mandataire interne</td>
</tr>
-
</table>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_rewrite.html" title="Français"> fr </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_rewrite.html';
+(function(w, d) {
+ if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+ d.write('<div id="comments_thread"><\/div>');
+ var s = d.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+ (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+ }
+ else {
+ d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+ }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+//--><!]]></script>
</body></html>
\ No newline at end of file