<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1421821 -->
+<!-- English Revision: 1668875:1673917 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
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 <directive
- module="mod_rewrite">RewriteRule</directive> !</p>
+ <p>Plutôt que de commenter toutes les directives <directive
+ module="mod_rewrite">RewriteRule</directive>, 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
<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, <module>mod_rewrite</module> 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>
contexte de <code>serveur virtuel</code> ou de serveur principal,
<module>mod_rewrite</module> 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
+ 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
utiliser l'option <code>AllowAnyURI</code>, afin de permettre à
<module>mod_rewrite</module> 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.</p>
+ grammaire des chemins URL définie dans la spécification HTTP.<br />
+ Disponible depuis la version 2.4.3 du serveur HTTP Apache.</p>
<note type="warning">
<title>Avertissement à propos de la sécurité</title>
module="mod_rewrite">RewriteBase</directive> est recopiée depuis
une valeur explicitement définie dans tout sous-répertoire qui ne
définit pas sa propre directive <directive
- module="mod_rewrite">RewriteBase</directive>. Disponible à partir
- de la version 2.5 du serveur HTTP Apache.</p>
+ module="mod_rewrite">RewriteBase</directive>. 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>
+
+ <dt><code>IgnoreContextInfo</code></dt>
+ <dd>
+
+ <p>Lors d'une
+ substitution relative dans un contexte de répertoire (htaccess),
+ et si la directive <directive
+ module="mod_rewrite">RewriteBase</directive> n'a pas été définie,
+ ce module utilise des informations en provenance d'une extension
+ d'URL et du contexte du système de fichiers pour transformer la
+ sustitution relative en URL. Par exemple, les modules
+ <module>mod_userdir</module> et <module>mod_alias</module>
+ utilisent ces informations de contexte étendu.</p>
</dd>
</dl>
<name>RewriteMap</name>
<description>Définit une fonction de mise en correspondance pour la
recherche de mots-clés</description>
-<syntax>RewriteMap <em>nom de la correspondance</em> <em>type de
-correspondance</em>:<em>source de la correspondance</em>
+<syntax>RewriteMap <em>MapName</em> <em>MapType</em>:<em>MapSource</em> <em>MapTypeOptions</em>
</syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
La source utilisée pour cette recherche peut être de plusieurs
types.</p>
- <p><a id="mapfunc" name="mapfunc"><em>nom de la
- correspondance</em></a> est le nom de la table de correspondance
+ <p><a id="mapfunc" name="mapfunc"><em>MapName</em></a> 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 :</p>
<p class="indent">
- <strong><code>${</code> <em>nom de la
- correspondance</em> <code>:</code>
+ <strong><code>${</code> <em>MapName</em> <code>:</code>
<em>mot-clé</em> <code>}</code><br />
- <code>${</code> <em>nom de la
- correspondance</em> <code>:</code>
+ <code>${</code> <em>MapName</em> <code>:</code>
<em>mot-clé</em> <code>|</code> <em>valeur par défaut</em>
<code>}</code></strong>
</p>
<p>Lorsqu'une telle construction est rencontrée, la table de
- correspondance <em>Nom de la correspondance</em> est consultée
+ correspondance <em>MapName</em> est consultée
et la clé <em>mot-clé</em> recherchée. Si la clé est trouvée, la
construction est remplacée par
la <em>valeur de remplacement</em>. Si la clé n'est pas trouvée,
RewriteRule ^/ex/(.*) ${map-exemple:$1}
</highlight>
+ <p>La signification de l'argument <em>MapTypeOptions</em> dépend du <em>MapType</em>
+ spécifié. Veuillez vous référer au document <a
+ href="../rewrite/rewritemap.html">Utiliser RewriteMap</a> pour
+ plus de détails.</p>
+
<p>Les combinaisons suivantes pour <em>type de correspondance</em>
- et <em>source de la correspondance</em>
+ et <em>MapSource</em>
peuvent être utilisées :</p>
<dl>
<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>
<name>RewriteBase</name>
<description>Définit l'URL de base pour les réécritures au niveau
répertoire</description>
-<syntax>RewriteBase <em>chemin URL</em></syntax>
+<syntax>RewriteBase <em>chemin_URL</em></syntax>
<default>Pas de valeur par défaut</default>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
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 <directive module="core">DocumentRoot</directive> (c'est à
+ <li>La requête initiale, ainsi que la substitution, se
+ situent par raport à la valeur de la directive
+ <directive module="core">DocumentRoot</directive> (c'est à
dire que pour y accéder, il n'est pas nécessaire d'utiliser
une directive telle qu'<directive
module="mod_alias">Alias</directive>).</li>
contenant la <directive>RewriteRule</directive>, suffixé par
la substitution relative est aussi valide en tant qu'URL sur
le serveur (ce qui est rare).</li>
+ <li>A partir de la version 2.4.11 du serveur HTTP Apache,
+ cette directive peut être omise lorsque la requête est mise en
+ correspondance avec le système de fichiers via la directive
+ <directive module="mod_alias">Alias</directive> ou le module
+ <module>mod_userdir</module>.</li>
</ul>
<p>Dans l'exemple ci-dessous, la directive
<highlight language="config">
DocumentRoot /var/www/example.com
-Alias /myapp /opt/myapp-1.2.3
+AliasMatch ^/myapp /opt/myapp-1.2.3
<Directory /opt/myapp-1.2.3>
RewriteEngine On
RewriteBase /myapp/
RewriteRule ^index\.html$ welcome.html
</Directory>
</highlight>
+
</usage>
</directivesynopsis>
la réécriture soit effectuée
</description>
<syntax> RewriteCond
- <em>chaîne de test</em> <em>expression de comparaison</em></syntax>
+ <em>chaîne_de_test</em> <em>expression_de_comparaison</em></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
</strong> : ce sont des références arrières de la forme
<strong><code>%N</code></strong> (0 <= N <= 9). %1 à %9
permettent d'accéder aux parties regroupées (entre
- parenthèses) du modèle, issues de la <code>RewriteRule</code>
- concernée par le jeu de conditions <code>RewriteCond</code>
+ parenthèses) du modèle, issues de la dernière
+ condition <code>RewriteCond</code> satisfaite du jeu de conditions <code>RewriteCond</code>
courant. %0 donne accès à l'ensemble de la chaîne
correspondant au modèle.</li>
<li>
<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></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 <directive
spécifiques à mod_rewrite, ou trouve les suivantes :</p>
<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
+ <module>mod_remoteip</module>).</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
+ <module>mod_ssl</module> soit chargé ou non).</dd>
- <dt><code>REQUEST_URI</code></dt>
+ <dt><code>IS_SUBREQ</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 "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 <module>mod_remoteip</module>).</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
- <module>mod_ssl</module> soit chargé ou non.</dd>
+ valeur de <code>REQUEST_URI</code>. En fonction de la
+ valeur de la directive <directive
+ module="core">AcceptPathInfo</directive>, 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>
la directive <directive
module="core">ServerName</directive>.</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>
</note>
</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é
+ <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
</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>
-<note><title>Note :</title>
- Tous ces tests peuvent aussi être préfixés par un point
- d'exclamation ('!') pour inverser leur signification.
-</note>
</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>
</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>
pouvez utiliser ce qui suit : </p>
<highlight language="config">
-RewriteCond %{HTTP_USER_AGENT} ^Mozilla
-RewriteRule ^/$ /homepage.max.html [L]
-
-RewriteCond %{HTTP_USER_AGENT} ^Lynx
-RewriteRule ^/$ /homepage.min.html [L]
+RewriteCond %{HTTP_USER_AGENT} (iPhone|Blackberry|Android)
+RewriteRule ^/$ /homepage.mobile.html [L]
RewriteRule ^/$ /homepage.std.html [L]
</highlight>
<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>
</usage>
<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> (ou au
- <a href="./directive-dict.html#Syntax">chemin fichier</a>, en
+ <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
<li>Bien que les règles de réécriture soient permises du point de vue de
la syntaxe dans les sections <directive type="section"
module="core">Location</directive> et <directive type="section"
-module="core">Files</directive>, elles n'y sont pas prises en compte, et
-n'y sont à priori d'aucune utilité.</li>
+module="core">Files</directive> (y compris leurs versions sous forme
+d'expression rationnelle), elles n'y sont pas prises en compte, et
+n'y sont à priori d'aucune utilité. Les substitutions
+relatives sont une fonctionnalité qui n'est, elle non-plus pas supportée
+dans ce genre de contexte.</li>
</ul>
</note>
<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
href="../rewrite/flags.html">document à propos des drapeaux de
réécriture.</a></p>
- <table border="1">
+ <table border="1" style="zebra">
<tr><th>Drapeaux et syntaxe</th>
<th>Fonction</th>
</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>
+ <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
...</a></em></td>
</tr>
<tr>
+ <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>
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>
<td>skip|S=<em>nombre</em></td>
<td>Si la règle courante s'applique, le moteur de réécriture
/chemin/infochemin</code>'':</strong><br />
</p>
-<table border="1">
+<table border="1" style="zebra">
<tr>
<th>Règle</th>
<th>Résultat de la substitution</th>
/chemin/chemin-local/infochemin</code>'':</strong><br />
</p>
-<table border="1">
+<table border="1" style="zebra">
<tr>
<th>Règle</th>