]> granicus.if.org Git - apache/commitdiff
New .fr translation for the rewrite module.
authorVincent Deffontaines <gryzor@apache.org>
Sat, 18 Jul 2009 20:47:52 +0000 (20:47 +0000)
committerVincent Deffontaines <gryzor@apache.org>
Sat, 18 Jul 2009 20:47:52 +0000 (20:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@795429 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_rewrite.html
docs/manual/mod/mod_rewrite.html.fr [new file with mode: 0644]
docs/manual/mod/mod_rewrite.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_rewrite.xml.meta

index 1a7045b620b057eb2f7ab95bad294aeeed396221..045888365237f16b57a2b3194a2ccdf6dd6e8666 100644 (file)
@@ -3,3 +3,7 @@
 URI: mod_rewrite.html.en
 Content-Language: en
 Content-type: text/html; charset=ISO-8859-1
+
+URI: mod_rewrite.html.fr
+Content-Language: fr
+Content-type: text/html; charset=ISO-8859-1
diff --git a/docs/manual/mod/mod_rewrite.html.fr b/docs/manual/mod/mod_rewrite.html.fr
new file mode 100644 (file)
index 0000000..147c977
--- /dev/null
@@ -0,0 +1,1836 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+              This file is generated from xml source: DO NOT EDIT
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+      -->
+<title>mod_rewrite - Serveur Apache HTTP</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="../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="apache">Serveur Apache HTTP Version 2.3</p>
+<img alt="" src="../images/feather.gif" /></div>
+<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Modules</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Module Apache mod_rewrite</h1>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../fr/mod/mod_rewrite.html" title="Français">&nbsp;fr&nbsp;</a></p>
+</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>
+<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>rewrite_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_rewrite.c</td></tr>
+<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 1.3
+d'Apache</td></tr></table>
+<h3>Sommaire</h3>
+
+      <p>Ce module utilise un moteur de réécriture à base de règles
+      (basé sur un interpréteur d'expressions rationnelles) pour
+      réécrire les URLs des requêtes à la volée. Il accepte un nombre
+      illimité de règles, ainsi q'un nombre illimité de conditions
+      attachées à chaque règle, fournissant ainsi un mécanisme de
+      manipulation d'URL vraiment souple et puissant. Les manipulations
+      d'URL peuvent dépendre de nombreux tests, des variables du
+      serveur, des variables d'environnement, des en-têtes HTTP ou de
+      l'horodatage. On peut même lancer des requêtes vers une base de
+      données externe sous divers formats, afin d'obtenir une
+      sélection d'URL très fine.</p>
+
+      <p>Ce module agit sur l'ensemble de l'URL (la partie concernant
+      le chemin incluse) au niveau du serveur
+      (<code>httpd.conf</code>) mais aussi au niveau du répertoire
+      (<code>.htaccess</code>), et peut inclure des arguments de chaîne
+      de requête (query string) comme résultat. Le résultat de la réécriture peut
+      renvoyer vers un sous-traitement interne, une redirection vers
+      une requête externe, ou même vers le flux d'un proxy interne.</p>
+
+      <p>Vous trouverez d'avantage de détails, discussions et exemples
+      dans la
+      <a href="../rewrite/">documentation détaillée
+      sur mod_rewrite</a>.</p>
+</div>
+<div id="quickview"><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#rewritebase">RewriteBase</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">RewriteCond</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewriteengine">RewriteEngine</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewritelock">RewriteLock</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewritelog">RewriteLog</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewriteloglevel">RewriteLogLevel</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewritemap">RewriteMap</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewriteoptions">RewriteOptions</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#rewriterule">RewriteRule</a></li>
+</ul>
+<h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#quoting">Marquage des caractères spéciaux</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#EnvVar">Variables d'environnement</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#vhosts">Réécriture et hôtes virtuels</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#Solutions">Solutions pratiques</a></li>
+</ul><h3>Voir aussi</h3>
+<ul class="seealso">
+<li><a href="#rewriteflags">Drapeaux des règles de réécriture</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="quoting" id="quoting">Marquage des caractères spéciaux</a></h2>
+
+      <p>Depuis Apache 1.3.20, les caractères spéciaux dans les
+      <em>chaînes de test</em> et les chaînes de <em>Substitution</em>
+      peuvent être échappés (c'est à dire traités comme des caractères
+      normaux sans tenir compte de leur signification en tant que
+      caractère spécial), en les faisant précéder d'un caractère
+      anti-slash ('\'). En d'autres termes, vous pouvez inclure un
+      véritable signe "dollar" dans une chaîne de <em>Substitution</em>
+      en utilisant '<code>\$</code>' ; ceci empêche mod_rewrite de le
+      traiter comme une référence arrière.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="EnvVar" id="EnvVar">Variables d'environnement</a></h2>
+
+      <p>Ce module conserve le contenu de deux variables d'environnement
+      CGI/SSI additionnelles (non standards) nommées
+      <code>SCRIPT_URL</code> et <code>SCRIPT_URI</code>. Celles-ci
+      contiennent l'adresse <em>logique</em> vue du Web
+      de la ressource concernée, tandis que les variables CGI/SSI
+      standards <code>SCRIPT_NAME</code> et
+      <code>SCRIPT_FILENAME</code> contiennent l'adresse
+      <em>physique</em> de la ressource vue du système. </p>
+
+      <p>Note : ces variables conservent l'URI/URL <em>telle qu'elle
+      était à l'arrivée de la requête</em>, c'est à dire
+      <em>avant</em> tout processus de réécriture. Il est important de
+      le savoir car le processus de réécriture est principalement
+      utilisé pour réécrire des URLs logiques en chemins physiques.
+      <br />
+      Ces variables sont définies dans un contexte du niveau serveur, ce
+      qui signifie qu'elles ne sont disponibles que dans un contexte de
+      répertoire, si <code class="directive">RewriteEngine</code> est positionné à
+      <code>on</code> dans un contexte de niveau serveur.</p>
+
+
+<div class="example"><h3>Exemple</h3><pre>
+SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
+SCRIPT_FILENAME=/u/rse/.www/index.html
+SCRIPT_URL=/u/rse/
+SCRIPT_URI=http://en1.engelschall.com/u/rse/
+</pre></div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="vhosts" id="vhosts">Réécriture et hôtes virtuels</a></h2>
+
+     <p>Par défaut, les hôtes virtuels n'héritent pas de la
+     configuration de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> telle qu'elle est
+     définie dans le contexte du serveur principal. Pour que la
+     configuration du serveur principal s'applique aux hôtes virtuels,
+     vous devez insérez les directives suivantes dans chaque section
+     <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> :</p>
+
+     <div class="example"><p><code>
+     RewriteEngine On<br />
+     RewriteOptions Inherit
+     </code></p></div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="Solutions" id="Solutions">Solutions pratiques</a></h2>
+
+    <p>Vous trouverez de nombreux exemples d'utilisation courante (et
+    moins courante) de mod_rewrite dans le
+    <a href="../rewrite/rewrite_guide.html">Guide de réécriture</a>,
+    et dans le
+    <a href="../rewrite/rewrite_guide_advanced.html">Guide de réécriture avancée</a>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteBase" id="RewriteBase">RewriteBase</a> <a name="rewritebase" id="rewritebase">Directive</a></h2>
+<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#Default">Défaut:</a></th><td><code>Voir utilisation pour plus d'informations.</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">Annuler:</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 l'URL de base pour les réécritures au niveau du
+      répertoire. Comme vous le verrez plus loin, la directive
+      <code class="directive"><a href="#rewriterule">RewriteRule</a></code> peut
+      être utilisée dans les fichiers de configuration au niveau du
+      répertoire (<code>.htaccess</code>). Elle agit alors localement,
+      en amputant le répertoire local de son préfixe avant traitement,
+      et en n'appliquant les règles de réécriture que sur ce qui reste
+      de l'URL. Lorsque le traitement est terminé, le préfixe est
+      automatiquement rajouté à l'URL. La valeur par défaut est
+      <code class="directive">RewriteBase</code>
+      <em>chemin répertoire physique</em></p>
+
+      <p>Lorsqu'une substitution intervient pour une nouvelle URL, ce
+      module doit réinjecter l'URL dans le traitement du serveur. Pour
+      y parvenir, il doit connaître le préfixe de l'URL ou l'URL de
+      base correspondants. Par défaut, le préfixe est le chemin du
+      fichier correspondant lui-même. <strong>Cependant, pour la
+      plupart des sites web, les URLs ne correspondent PAS directement
+      aux chemins des fichiers physiques, cette assertion s'avère
+      ainsi souvent fausse !</strong>. C'est pourquoi vous pouvez
+      utiliser la directive <code>RewriteBase</code> pour spécifier
+      le préfixe correct.</p>
+
+<div class="note"> Si les URLs de votre serveur web ne correspondent
+<strong>pas</strong> directement aux chemins physiques des fichiers,
+vous devrez utiliser <code class="directive">RewriteBase</code> dans chaque
+fichier <code>.htaccess</code> où vous voudrez utiliser des
+directives <code class="directive"><a href="#rewriterule">RewriteRule</a></code>.
+</div>
+
+        <p> Par exemple, considérons le fichier de configuration de
+       répertoire suivant :</p>
+
+<div class="example"><pre>
+#
+#  /abc/def/.htaccess -- fichier de configuration pour le répertoire
+/abc/def
+#  Rappel : /abc/def est le chemin physique de /xyz,
+#  <em>ce qui veut dire</em> que la configuration du serveur comporte
+#  une directive du style 'Alias /xyz /abc/def'.
+#
+
+RewriteEngine On
+
+#  faisons savoir au serveur qu'on nous a atteint via /xyz et non par
+#  le chemin physique /abc/def
+RewriteBase   /xyz
+
+#  maintenant les règles de réécriture
+RewriteRule   ^avant\.html$  après.html
+</pre></div>
+
+        <p>Dans l'exemple précédent, une requête pour
+       <code>/xyz/avant.html</code> sera correctement réécrite sous
+       sous sa forme chemin physique
+       <code>/abc/def/après.html</code>.</p>
+
+<div class="note"><h3>Pour les hackers d'Apache</h3>
+<p>La liste suivante fournit des informations détaillées à propos des
+étapes du traitement interne :</p>
+<pre>
+Requête :
+  /xyz/avant.html
+
+Traitement interne :
+  /xyz/avant.html     -&gt; /abc/def/avant.html  (Alias au niveau serveur)
+  /abc/def/avant.html -&gt; /abc/def/après.html  (RewriteRule au niveau répertoire)
+  /abc/def/après.html -&gt; /xyz/après.html      (RewriteBase au niveau répertoire)
+  /xyz/après.html     -&gt; /abc/def/après.html  (Alias au niveau serveur)
+
+Résultat :
+  /abc/def/après.html
+
+</pre>
+              <p>Tout ceci paraît très compliqué, mais correspond
+             réellement au traitement interne d'Apache. Comme la
+             réécriture au niveau du répertoire intervient plus tard
+             au cours du traitement, la requête de réécriture doit être
+             réinjectée dans le noyau d'Apache, comme s'il s'agissait
+             d'une nouvelle requête (Voir les <a href="../rewrite/rewrite_tech.html">détails techniques à
+             propos de mod_rewrite</a>). La surcharge
+             correspondante n'est pas aussi importante qu'il n'y
+             paraît, car la réinjection est entièrement prise en charge
+             en interne par Apache (comme c'est d'ailleurs le cas pour
+             de nombreuses autres opérations effectuées à l'intérieur
+             d'Apache).</p>
+</div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteCond" id="RewriteCond">RewriteCond</a> <a name="rewritecond" id="rewritecond">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une condition qui devra être satisfaite pour que
+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>
+<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">Annuler:</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">RewriteCond</code> définit une
+      condition d'application d'une certaine règle. Une ou plusieurs
+      directives <code class="directive">RewriteCond</code> peuvent précéder
+      une directive
+      <code class="directive"><a href="#rewriterule">RewriteRule</a></code>. La règle
+      qui suit n'est appliquée que si l'état actuel de l'URI
+      correspond à son modèle, <strong>et</strong> si les conditions sont satisfaites.</p>
+
+      <p><em>chaîne de test</em> est une chaîne de caractères qui peut
+      contenir, en plus du texte plat, les constructions étendues
+      suivantes :</p>
+
+      <ul>
+        <li>
+          <strong>références arrières de règle de réécriture</strong> :
+         ce sont des références arrières de la forme
+         <strong><code>$N</code></strong> (0 &lt;= N &lt;= 9), qui
+         donnent accès aux parties groupées (entre parenthèses) du
+         modèle tiré de la <code>RewriteRule</code> assujettie au
+         jeu de conditions concerné.
+        </li>
+        <li>
+          <strong>Références arrières de condition de réécriture
+         </strong> : ce sont des références arrières de la forme
+         <strong><code>%N</code></strong> (1 &lt;= N &lt;= 9), qui
+         donnent accès aux parties groupées (là aussi entre
+         parenthèses) du modèle de la dernière condition satisfaite
+         du jeu de conditions concerné.
+        </li>
+        <li>
+          <strong>extensions de table de réécriture</strong> :
+         ce sont des extensions de la forme <strong><code>${nomTable:clé|défaut}</code></strong>. Voir
+         <a href="#mapfunc">la documentation de
+          RewriteMap</a> pour plus de détails.
+        </li>
+        <li>
+          <strong>Variables du serveur</strong> :
+         ce sont des variables de la forme
+         <strong><code>%{</code> <em>NOM_DE_VARIABLE</em>
+            <code>}</code></strong>
+            <strong><code>%{</code> <em>NOM_DE_VARIABLE</em>
+            <code>}</code></strong> où <em>NOM_DE_VARIABLE</em>
+           peut être une chaîne de caractères faisant partie de la
+           liste suivante :
+
+          <table>
+          
+            <tr>
+              <th>En-têtes HTTP :</th> <th>connexion &amp; requête:</th> <th />
+           </tr>
+
+            <tr>
+             <td>
+                HTTP_USER_AGENT<br />
+                 HTTP_REFERER<br />
+                 HTTP_COOKIE<br />
+                 HTTP_FORWARDED<br />
+                 HTTP_HOST<br />
+                 HTTP_PROXY_CONNECTION<br />
+                 HTTP_ACCEPT<br />
+              </td>
+
+              <td>
+                 REMOTE_ADDR<br />
+                 REMOTE_HOST<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>
+
+            <tr>
+              <th>variables internes au serveur :</th> <th>date et heure :</th> <th>spéciaux :</th>
+           </tr>
+
+            <tr>
+             <td>
+                DOCUMENT_ROOT<br />
+                 SERVER_ADMIN<br />
+                 SERVER_NAME<br />
+                 SERVER_ADDR<br />
+                 SERVER_PORT<br />
+                 SERVER_PROTOCOL<br />
+                 SERVER_SOFTWARE<br />
+              </td>
+
+              <td>
+                 TIME_YEAR<br />
+                 TIME_MON<br />
+                 TIME_DAY<br />
+                 TIME_HOUR<br />
+                 TIME_MIN<br />
+                 TIME_SEC<br />
+                 TIME_WDAY<br />
+                 TIME<br />
+              </td>
+
+              <td>
+                 API_VERSION<br />
+                 THE_REQUEST<br />
+                 REQUEST_URI<br />
+                 REQUEST_FILENAME<br />
+                 IS_SUBREQ<br />
+                 HTTPS<br />
+              </td>
+            </tr>
+          </table>
+
+                <p>Toutes ces variables correspondent nom pour nom aux
+               en-têtes MIME HTTP, aux variables C du serveur Apache
+               ou aux champs <code>struct tm</code> du système Unix.
+               La plupart sont documentées dans une autre partie du
+               manuel ou dans la spécification CGI. Vous trouverez
+               dans ce qui suit quelques variables spécifiques
+               à mod_rewrite.</p>
+       <div class="note">
+                <dl>
+                  <dt><code>IS_SUBREQ</code></dt>
+
+                  <dd>Contiendra 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>Il s'agit de la version de l'API des modules
+                 Apache (l'interface interne entre le serveur et les
+                 modules) dans la construction actuelle de httpd,
+                 telle qu'elle est définie dans include/ap_mmn.h. La
+                 version de l'API des modules correspond à la version
+                 d'Apache utilisée (pour Apache 1.3.14, par exemple,
+                 la version de l'API sera 19990320:10), mais cette
+                 information intéresse principalement les
+                 développeurs de modules.</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.</dd>
+
+                  <dt><code>REQUEST_URI</code></dt>
+
+                  <dd>La ressource demandée dans la ligne de requête
+                 HTTP (correspondrait, dans l'exemple précédent, à
+                 "/index.html").</dd>
+
+                  <dt><code>REQUEST_FILENAME</code></dt>
+
+                  <dd>Le chemin complet local au système de fichiers
+                 du fichier ou du script correspondant
+                 à la requête.</dd>
+
+                  <dt><code>HTTPS</code></dt>
+
+                  <dd>Contiendra le texte "on" si la connexion
+                 utilise SSL/TLS, "off" dans le cas contraire
+                 (L'utilisation de cette variable est pertinente,
+                 indépendamment du fait que <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>
+                 soit chargé ou non).</dd>
+
+                </dl>
+</div>
+        </li>
+      </ul>
+
+      <p>Autres points à connaître :</p>
+
+      <ol>
+        <li>
+       <p>Les variables SCRIPT_FILENAME et REQUEST_FILENAME ont la
+       même valeur - celle du champ <code>filename</code> de la
+       structure interne du serveur Apache <code>request_rec</code>.
+       Le premier nom est bien connu en tant que variable CGI,
+       alors que le second est équivalent à REQUEST_URI (qui contient
+       la valeur du champ <code>uri</code> de la structure
+       <code>request_rec</code>).</p>
+       <p>Si une substitution intervient et si la réécriture continue,
+       les valeurs des deux variables seront mises à jour en
+       conséquence.</p>
+       <p>Dans un contexte de niveau serveur (<em>c'est à dire</em>
+       avant que la requête soit mise en correspondance avec le système
+       de fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas
+       contenir le chemin complet dans le système de fichier local car
+       ce dernier n'est pas encore connu à ce niveau du traitement.
+       Dans ce cas, les deux variables contiendront initialement la
+       valeur de REQUEST_URI. Pour avoir accès au chemin complet de la
+       requête dans le système de fichiers local dans un contexte de
+       niveau serveur, utilisez une référence avant à base d'URL
+       <code>%{LA-U:REQUEST_FILENAME}</code> pour déterminer la valeur
+       finale de REQUEST_FILENAME.</p></li>
+
+        <li>On peut également utiliser <code>%{ENV:variable}</code>, où
+       <em>variable</em> peut être remplacé par toute variable
+       d'environnement. Ces variables sont recherchées dans les
+       structures internes d'Apache, et (si elles n'y figurent pas)
+       via <code>getenv()</code> depuis le processus du serveur
+       Apache.</li>
+
+        <li>Que <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> soit chargé ou non, on peut
+       utiliser <code>%{SSL:variable}</code>, où <em>variable</em>
+       peut être remplacé par le nom d'une
+       <a href="mod_ssl.html#envvars">variable
+       d'environnement SSL</a>, mais la valeur produite sera toujours
+       une chaîne de caractères vide si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> n'est
+       pas chargé. Exemple :
+       <code>%{SSL:SSL_CIPHER_USEKEYSIZE}</code> peut correspondre
+       à <code>128</code>.</li>
+
+        <li>Pour obtenir la valeur d'un en-tête contenu dans une requête
+       HTTP, on peut toujours utiliser <code>%{HTTP:header}</code>,
+       où <em>header</em> peut être remplacé par tout nom d'en-tête
+       MIME HTTP. Exemple : <code>%{HTTP:Proxy-Connection}</code> est
+       la valeur de l'en-tête HTTP ``<code>Proxy-Connection:</code>''.
+        <p>Si une condition contient un en-tête HTTP, il est ajouté à
+       l'en-tête Vary de la réponse dans le cas où la condition est
+       évaluée à true pour la requête. Dans le cas contraire, il n'est
+       <strong>pas</strong> ajouté. L'ajout de l'en-tête HTTP à
+       l'en-tête Vary de la réponse s'avère nécessaire pour une mise
+       en cache correcte.</p>
+        <p>Il faut garder à l'esprit que les conditions suivent une
+       logique de court-circuit en cas de présence du drapeau
+       '<strong><code>ornext|OR</code></strong>', si bien que
+       certaines d'entre elles sont susceptibles de ne pas être
+       évaluées du tout.</p></li>
+
+        <li>On peut utiliser <code>%{LA-U:variable}</code> pour les
+       recherches en avant qui effectuent une sous-requête interne
+       (basée sur l'URL), pour déterminer la valeur finale de
+       <em>variable</em>. Cela peut servir à accéder à une variable
+       (nécessaire pour une réécriture) qui n'est pas disponible dans
+       la situation présente, mais le sera dans une phase ultérieure.
+       <p>Par exemple, pour effectuer une réécriture qui tient compte
+       de la variable <code>REMOTE_USER</code> dans un contexte
+       niveau serveur (fichier <code>httpd.conf</code>), vous devez
+       utiliser <code>%{LA-U:REMOTE_USER}</code> ; cette variable est
+       définie au cours des phases d'autorisation, qui interviennent
+       <em>après</em> la phase de traduction de l'URL (pendant
+       laquelle agit mod_rewrite).</p>
+       <p>Par contre, comme mod_rewrite implémente son contexte
+       niveau répertoire (fichier <code>.htaccess</code>) via la
+       phase Fixup de l'API, et comme les phases d'autorisation
+       interviennent <em>avant</em> cette phase, vous pouvez vous contenter
+       d'utiliser <code>%{REMOTE_USER}</code>
+       dans le contexte niveau serveur.</p></li>
+
+        <li>On peut utiliser <code>%{LA-F:variable}</code> pour
+       effectuer une sous-requête interne (basée sur un nom de
+       fichier), pour déterminer la valeur finale de
+       <em>variable</em>. La plupart du temps, elle est identique à
+       LA-U vue précédemment.</li>
+      </ol>
+
+      <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
+      évaluée, puis comparée à
+      l'<em>expression de comparaison</em>.</p>
+
+      <p><strong>A savoir :</strong>
+      <em>expression de comparaison</em> est une
+      <em>expression rationnelle compatible perl</em> avec
+      quelques extensions :</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>
+
+        <li>Il existe certaines variantes spéciales
+       d'<em>expressions de comparaison</em>. A la place d'une
+       expression rationnelle, vous pouvez utiliser :
+
+          <ul>
+            <li>'<strong>&lt;expression</strong>' (infé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 inférieure au sens
+           lexicographique à l'<em>expression</em>.</li>
+
+            <li>'<strong>&gt;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
+           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
+           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>
+
+            <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
+           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
+           s'il existe ou pas, et s'il s'agit d'un fichier régulier.</li>
+
+            <li>'<strong>-s</strong>' (est un fichier régulier d'une
+           certaine taille - <strong>s</strong>ize)<br />
+           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
+           dont la taille est supérieure à zéro.</li>
+
+            <li>'<strong>-l</strong>' (est un
+           <strong>l</strong>ien symbolique)<br />
+           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 lien
+           symbolique.</li>
+
+            <li>'<strong>-x</strong>' (a le droit
+           d'e<strong>x</strong>écution)<br />
+           Traite <em>chaîne de test</em> comme un chemin et vérifie
+           s'il existe ou pas, et a le droit d'exécution. Ce droit est
+           déterminé en accord avec le système d'exploitation
+           sous-jacent.</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,
+           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>
+
+            <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,
+           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>
+          </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>Vous pouvez aussi définir certains drapeaux pour
+       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
+       sous-ensemble séparé par des virgules des drapeaux suivants :
+
+      <ul>
+        <li>'<strong><code>nocase|NC</code></strong>'
+       (<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
+       vérification par sous-requêtes ou sur le système de
+       fichiers.</li>
+
+        <li>
+          '<strong><code>ornext|OR</code></strong>'
+         (<strong>ou</strong> condition suivante)<br />
+         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}  ^hote1.*  [OR]
+RewriteCond %{REMOTE_HOST}  ^hote2.*  [OR]
+RewriteCond %{REMOTE_HOST}  ^hote3.*
+RewriteRule ...règles concernant tous ces hôtes...
+</pre></div>
+
+          Sans ce drapeau, les paires
+         condition/règle devraient être écrites trois fois.
+        </li>
+
+        <li>'<strong><code>novary|NV</code></strong>'
+       (<strong>n</strong>o <strong>v</strong>ary)<br />
+       Si la condition contient un en-tête HTTP, ce drapeau empêche
+       ce dernier d'être ajouté à l'en-tête Vary de la réponse. <br />
+       L'utilisation de ce drapeau peut provoquer une mise en cache
+       incorrecte de la réponse, si la représentation de cette réponse
+       varie avec la valeur de l'en-tête considéré. Ce drapeau ne
+       devrait donc être utilisé que si l'on maîtrise parfaitement le
+       fonctionnement de l'en-tête Vary.
+        </li>
+      </ul>
+      </li>
+     </ol>
+
+      <p><strong>Exemple :</strong></p>
+
+       <p>Pour réécrire la page d'accueil d'un site en fonction de
+       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]
+
+RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
+RewriteRule  ^/$                 /homepage.min.html  [L]
+
+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>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteEngine" id="RewriteEngine">RewriteEngine</a> <a name="rewriteengine" id="rewriteengine">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive l'exécution du
+moteur de réécriture</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteEngine on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>RewriteEngine off</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">Annuler:</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">RewriteEngine</code> active ou
+      désactive l'exécution du moteur de réécriture. Si sa valeur est
+      <code>off</code>, ce module n'exécutera aucun traitement et ne
+      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>Notez que les  hôtes virtuels n'héritent pas des
+      configurations de réécriture. Ceci implique que vous devez
+      insérer une directive <code>RewriteEngine on</code> dans chaque
+      hôte virtuel pour lequel vous souhaitez utiliser des règles
+      de réécriture.</p>
+
+      <p>Les directives <code class="directive">RewriteMap</code> du type
+      <code>prg</code> 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 <code class="directive">RewriteEngine</code> n'a
+      pas été définie à <code>on</code>.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteLock" id="RewriteLock">RewriteLock</a> <a name="rewritelock" id="rewritelock">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom du fichier verrou utilisé pour la
+synchronisation de <code class="directive"><a href="#rewritemap">RewriteMap</a></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteLock <em>chemin du fichier verrou</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</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>Cette directive définit le nom du fichier utilisé comme
+      fichier verrou de synchronisation nécessaire à mod_rewrite pour
+      communiquer avec les <em>programmes</em> liés à <code class="directive"><a href="#rewritemap">RewriteMap</a></code>. Définissez ce
+      fichier verrou dans un chemin local (et non sur un montage NFS)
+      si vous voulez utiliser un programme de comparaison pour la
+      réécriture. Il n'est pas nécessaire pour les autres types de
+      comparaison pour la réécriture.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteLog" id="RewriteLog">RewriteLog</a> <a name="rewritelog" id="rewritelog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom du fichier utilisé pour la journalisation
+des traitements du moteur de réécriture</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteLog <em>chemin du fichier journal</em></code></td></tr>
+<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>
+</table>
+      <p>La directive <code class="directive">RewriteLog</code> définit le nom
+      du fichier dans lequel le serveur journalise tout processus de
+      réécriture qu'il effectue. Si le nom&nbsp;ne commence pas par un
+      slash ('<code>/</code>'), il est considéré comme relatif à la
+      <em>Racine du serveur</em>. Cette directive ne doit apparaître
+      qu'une seule fois dans la configuration du serveur.</p>
+
+<div class="note">    Il est déconseillé de positionner
+       <em>chemin du fichier journal</em> à <code>/dev/null</code>
+       pour désactiver la journalisation des processus de réécriture,
+       car même si le moteur de réécriture n'envoie plus sa sortie
+       dans un fichier, il continue à créer un fichier journal en
+       interne, <strong>ce qui va avoir pour effet de ralentir le
+       serveur sans fournir aucun avantage à l'administrateur !
+       </strong> Pour désactiver la journalisation, vous pouvez
+       soit supprimer (ou commenter) la directive
+       <code class="directive">RewriteLog</code>, soit utiliser
+       <code>RewriteLogLevel 0</code> !
+</div>
+
+<div class="note"><h3>Sécurité</h3>
+
+Se référer au document
+<a href="../misc/security_tips.html">Conseils à propos
+de la sécurité dans Apache</a> pour plus de détails sur la manière
+dont votre sécurité pourrait être compromise si le répertoire où se
+trouvent les fichiers journaux est accessible en écriture par quiconque
+autre que l'utilisateur qui démarre le serveur.
+</div>
+
+<div class="example"><h3>Exemple</h3><p><code>
+RewriteLog "/usr/local/var/apache/logs/rewrite.log"
+</code></p></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteLogLevel" id="RewriteLogLevel">RewriteLogLevel</a> <a name="rewriteloglevel" id="rewriteloglevel">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la verbosité du fichier journal utilisé
+par le moteur de réécriture</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteLogLevel <em>niveau</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>RewriteLogLevel 0</code></td></tr>
+<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>
+</table>
+      <p>La directive <code class="directive">RewriteLogLevel</code> définit
+      le niveau de verbosité du fichier journal de réécriture. Le
+      niveau par défaut 0 signifie aucune journalisation, tandis que
+      9 ou plus signifie que pratiquement toutes les actions sont
+      journalisées.</p>
+
+      <p>Pour désactiver la journalisation des actions de réécriture,
+      positionnez simplement <em>niveau</em> à 0. Ceci désactive
+      toute journalisation des actions de réécriture.</p>
+
+<div class="note"> Utiliser une valeur élevée pour <em>niveau</em> va ralentir
+       considérablement votre serveur Apache ! N'utilisez une
+       journalisation de la réécriture à un <em>niveau</em>
+       supérieur à 2 qu'à des fins de débogage !
+</div>
+
+<div class="example"><h3>Exemple</h3><p><code>
+RewriteLogLevel 3
+</code></p></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteMap" id="RewriteMap">RewriteMap</a> <a name="rewritemap" id="rewritemap">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une fonction de mise en correspondance pour la
+recherche de mots-clés</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteMap <em>nom de la correspondance</em> <em>type de
+correspondance</em>:<em>source de la correspondance</em>
+</code></td></tr>
+<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 d'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
+      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.</p>
+
+      <p><a id="mapfunc" name="mapfunc"><em>nom de la
+      correspondance</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>
+        <em>mot-clé</em> <code>}</code><br />
+         <code>${</code> <em>nom de la
+      correspondance</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
+      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,
+      elle est remplacée par la <em>valeur par défaut</em>, ou par une
+      chaîne vide si aucune <em>valeur par défaut</em> n'est
+      spécifiée.</p>
+
+      <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>
+
+      <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>
+
+      <p>Les combinaisons suivantes pour <em>type de correspondance</em>
+      et <em>source de la correspondance</em>
+      peuvent être utilisées :</p>
+
+      <ul>
+        <li>
+          <strong>Format texte standard</strong><br />
+           type de correspondance : <code>txt</code>, source de la
+          correspondance : chemin du système de fichiers Unix vers un
+          fichier régulier valide
+
+          <p>Il s'agit de la mise en oeuvre standard de la table de
+         correspondance pour la réécriture où la
+         <em>source de la correspondance</em> est un fichier ASCII
+         dont les différentes lignes sont soit des lignes vides, soit
+         des lignes de commentaires (commençant par un caractère "#"),
+         soit des paires de valeurs (une seule paire
+         par ligne) comme suit :</p>
+
+          <p class="indent">
+            <strong><em>mot-clé</em>
+            <em>valeur de remplacement</em></strong>
+          </p>
+
+<div class="example"><h3>Exemple</h3><pre>
+##
+##  map.txt -- table de correspondance pour la réécriture
+##
+
+Ralf.S.Engelschall    rse   # Bastard Operator From Hell
+Mr.Joe.Average        joe   # Mr. Average
+</pre></div>
+
+<div class="example"><p><code>
+RewriteMap real-to-user txt:/chemin/vers/fichier/map.txt
+</code></p></div>
+        </li>
+
+        <li>
+          <strong>Format texte avec valeurs aléatoires</strong><br />
+           type de correspondance: <code>rnd</code>,
+          source de la correspondance : chemin du système de fichiers
+          Unix vers un fichier régulier valide
+
+          <p>Ce format se différencie du format texte standard
+         précédent par l'ajout d'un traitement supplémentaire : en
+         plus de la recherche de clés, le fichier est interprété en
+         tenant compte de la présence éventuelle dans les valeurs de
+         remplacement de caractères ``<code>|</code>'' signifiant
+         ``ou''. En d'autres termes, ces caractères ``<code>|</code>''
+         permettent de spécifier un jeu de valeurs parmi lesquelles
+         la valeur de retour sera choisie aléatoirement. Par exemple,
+         vous pouvez utiliser les fichier de correspondance et
+         directives suivants pour mettre en oeuvre une répartition de
+         charge aléatoire entre plusieurs serveurs en arrière-plan,
+         via un mandataire inverse. Les images sont envoyées à un des
+         serveurs de l'ensemble "statique", tandis que tout le
+         reste est envoyé à un des serveurs de l'ensemble
+         "dynamique".</p>
+          <p>Exemple:</p>
+
+<div class="example"><h3>Fichier de correspondances pour la réécriture</h3><pre>
+##
+##  map.txt -- correspondances pour la réécriture
+##
+
+static   www1|www2|www3|www4
+dynamic  www5|www6
+</pre></div>
+
+<div class="example"><h3>Directives de configuration</h3><p><code>
+RewriteMap serveurs rnd:/chemin/vers/fichier/map.txt<br />
+<br />
+RewriteRule ^/(.*\.(png|gif|jpg)) http://${serveurs:static}/$1
+[NC,P,L]<br />
+RewriteRule ^/(.*) http://${serveurs:dynamic}/$1 [P,L]
+</code></p></div>
+        </li>
+
+        <li>
+          <strong>Fichier à accès direct (Hash file)</strong><br />
+         type de correspondance :
+         <code>dbm[=<em>type</em>]</code>, source de la
+         correspondance : chemin du système de fichiers Unix vers un
+          fichier régulier valide
+
+          <p>Ici, la source de la correspondance est un fichier binaire
+         au format DBM contenant les mêmes données qu'un fichier au
+         format <em>Plein texte</em>, mais selon une représentation
+         particulière optimisée en vue d'une recherche très rapide.
+         Le <em>type</em> peut être sdbm, gdbm, ndbm, ou db selon la
+         configuration à la <a href="../install.html#dbm">compilation
+          </a>. Si <em>type</em> est omis, la valeur retenue
+         sera la valeur par défaut définie à la compilation.</p>
+
+          <p>La création du fichier dbm à partir d'un fichier texte
+         s'effectue à l'aide de l'utilitaire <a href="../programs/httxt2dbm.html">httxt2dbm</a>.</p>
+
+<div class="example"><p><code>
+$ httxt2dbm -i fichier-source.txt -o fichier-dbm.map
+</code></p></div>
+        </li>
+
+        <li>
+          <strong>Fonction interne</strong><br />
+           type de la correspondance : <code>int</code>,
+          source de la correspondance : fonction interne à Apache
+
+          <p>Ici, la source de la correspondance est une fonction
+         interne à Apache. Actuellement, vous ne pouvez pas créer
+         votre propre fonction, mais les fonctions suivantes
+         existent déjà :</p>
+
+          <ul>
+            <li><strong>toupper</strong>:<br />
+             Convertit tous les caractères de la clé en majuscules.</li>
+
+            <li><strong>tolower</strong>:<br />
+             Convertit tous les caractères de la clé en minuscules.</li>
+
+            <li><strong>escape</strong>:<br />
+             Traduit les caractères spéciaux que contient la clé en
+            séquences hexadécimales.</li>
+
+            <li><strong>unescape</strong>:<br />
+             Reconvertit les séquences hexadécimales que contient la
+            clé en caractères spéciaux.</li>
+          </ul>
+        </li>
+
+        <li>
+          <strong>Programme de réécriture externe</strong><br />
+           type de la correspondance : <code>prg</code>,
+          source de la correspondance :
+          chemin du système de fichiers Unix vers un
+          fichier régulier valide
+
+          <p>Ici, la source n'est pas un fichier de correspondances,
+         mais un programme. Pour le créer, vous pouvez utiliser le
+         langage de votre choix, mais le programme doit être un
+         exécutable (soit du code objet, soit un script
+         contenant le fameux
+         "<code>#!/chemin/vers/interpréteur</code>" au début de sa
+         première ligne).</p>
+
+         <p>Ce programme est lancé une seule fois au démarrage du
+        serveur Apache, puis communique avec le moteur de réécriture
+        via ses entrée et sortie standards (<code>stdin</code>
+        et <code>stdout</code>). A chaque recherche effectuée par la
+        fonction de correspondance, il reçoit sur son entrée standard
+        la clé à rechercher sous la forme d'une chaîne de caractères
+        terminée par le caractère "nouvelle ligne". Il doit ensuite
+        renvoyer sur sa sortie standard la valeur recherchée sous
+        la forme d'une chaîne de caractères terminée par le caractère
+        "nouvelle ligne", ou la chaîne de quatre
+        caractères ``<code>NULL</code>'' en cas d'échec
+        (<em>c'est à dire</em>
+        si aucune valeur ne correspond à la clé fournie).</p>
+
+        <p>Les programmes de réécriture externes ne seront pas lancés
+        s'ils ont été définis dans un contexte où la directive
+        <code class="directive">RewriteEngine</code> n'a pas été définie à
+        <code>on</code>.</p>
+
+        <p>Voici un
+        exemple de ce pourrait être un programme trivial qui
+        implémenterait une correspondance 1:1 (<em>c'est à dire</em>,
+        clé == valeur) :</p>
+
+<div class="example"><pre>
+#!/usr/bin/perl
+$| = 1;
+while (&lt;STDIN&gt;) {
+    # ...insérer ici le code de transformation ou de recherche...
+    print $_;
+}
+</pre></div>
+
+          <p>Mais soyez très prudent :</p>
+
+          <ol>
+            <li>``<em>Ce programme doit être simple, basique</em>''
+           (MERCI).
+           Si ce programme se bloque, il bloquera aussi Apache
+           lorsqu'il tentera d'utiliser la règle de réécriture
+           correspondante.</li>
+
+            <li>L'utilisation d'entrées/sorties avec tampon sur
+           <code>stdout</code> est une erreur courante. Ceci est à
+           proscrire sous peine de créer une boucle infernale ! Pour
+           éviter ceci, on utilise (en langage Perl) ``<code>$|=1</code>'' comme dans
+           l'exemple ci-dessus.</li>
+
+            <li>On peut définir la directive <code class="directive"><a href="#rewritelock">RewriteLock</a></code> pour spécifier
+           un fichier verrou que mod_rewrite pourra utiliser pour
+           synchroniser les communications avec le programme de
+           correspondance. Par défaut, aucune synchronisation de ce
+           type n'est mise en oeuvre.</li>
+          </ol>
+        </li>
+        <li>
+          <p><strong>Requête SQL</strong><br />
+           type de correspondance : <code>dbd</code> ou
+          <code>fastdbd</code>,
+           source de la correspondance : une requête SQL SELECT qui
+          comporte un seul argument et renvoie une seule valeur.</p>
+          <p>Ici, on utilise <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour implémenter
+         une correspondance pour la réécriture par recherche dans une
+         base de données SQL. Deux modes sont possibles :
+         <code>fastdbd</code> met en cache les recherches dans la base
+         de données en interne, alors que <code>dbd</code> ne le fait
+         pas. Ainsi, <code>dbd</code> diminue les performances, mais
+         donnera toujours une réponse actualisée, même si le contenu
+         de la base de données est mise à jour, alors que
+         <code>fastdbd</code> est plus performant mais ne relira pas
+         le contenu de la base de données tant que le serveur ne sera
+         pas redémarré.</p>
+          <p>Si une requête renvoie plusieurs réponses, une de ces
+         dernières sera choisie aléatoirement.</p>
+<div class="example"><h3>Example</h3><p><code>
+
+RewriteMap ma-requete "fastdbd:SELECT destination FROM rewrite WHERE source = %s"
+</code></p></div>
+        </li>
+      </ul>
+      <p>La directive <code class="directive">RewriteMap</code> peut
+      apparaître plusieurs fois. Utilisez une directive
+      <code class="directive">RewriteMap</code> par fonction de correspondance
+      pour déclarer son fichier de correspondance pour la réécriture.
+      Bien que vous ne puissiez pas <strong>déclarer</strong> une
+      table de correspondance dans un contexte de répertoire, vous
+      pouvez bien entendu <strong>utiliser</strong> cette table dans un
+      contexte de répertoire. </p>
+
+<div class="note"><h3>Note</h3> En ce qui concerne les fichiers au format DBM
+et texte plat, les clés de recherches sont mises en cache en interne
+jusqu'à ce que le <code>mtime (date de modification)</code> du fichier
+soit modifié, ou que le serveur soit redémarré. Ainsi, certaines
+fonctions de correspondance dans les règles peuvent être utilisées pour
+<strong>chaque</strong> requête. Cela ne pose pas problème, car la
+recherche externe n'intervient qu'une seule fois !
+</div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteOptions" id="RewriteOptions">RewriteOptions</a> <a name="rewriteoptions" id="rewriteoptions">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure certaines options spéciales
+pour le moteur de réécriture</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteOptions <var>Options</var></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">Annuler:</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
+      certaines options spéciales pour la configuration au niveau du
+      serveur ou du répertoire. La chaîne de caractères <em>Option</em>
+      ne peut actuellement prendre qu'une des valeurs suivantes :</p>
+
+      <dl>
+      <dt><code>inherit</code></dt>
+      <dd>Ceci 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 <code>.htaccess</code> ou les sections <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> 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 influance 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.
+      </dd>
+      </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RewriteRule" id="RewriteRule">RewriteRule</a> <a name="rewriterule" id="rewriterule">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les règles pour le moteur de réécriture</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RewriteRule
+      <em>Modèle</em> <em>Substitution</em> [<em>drapeaux</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">Annuler:</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">RewriteRule</code> 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.</p>
+
+      <p><a id="patterns" name="patterns"><em>Modèle</em></a> est une
+      <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 (%-encoded)
+      <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>
+
+<div class="note"><h3>Qu'est-ce qui est comparé ?</h3>
+      <p>Le <em>Modèle</em> est d'abord comparé à la partie
+      de l'URL après le nom d'hôte et le port, et avant la chaîne de
+      requête. Si vous souhaitez faire une comparaison sur le nom
+      d'hôte, le port, ou la chaîne de requête, utilisez une
+      directive <code class="directive"><a href="#rewritecond">RewriteCond</a></code>
+      comportant les variables
+      <code>%{HTTP_HOST}</code>, <code>%{SERVER_PORT}</code>, ou
+      <code>%{QUERY_STRING}</code>.</p>
+</div>
+
+       <p>Pour quelques conseils à propos des <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, voir le
+       document <a href="../rewrite/rewrite_intro.html#regex">Introduction à
+       mod_rewrite</a>.</p>
+
+      <p>Dans mod_rewrite, on peut aussi utiliser le caractère NON
+      ('<code>!</code>') comme préfixe de modèle. Ceci vous permet
+      d'inverser la signification d'un modèle, soit pour dire
+      ``<em>si l'URL considérée ne correspond <strong>PAS</strong> à
+      ce modèle</em>''. 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.</p>
+
+<div class="note"><h3>Note</h3>
+Si vous utilisez le caractère NON pour inverser la signification d'un
+modèle, vous ne pouvez pas inclure de parties génériques groupées dans
+le modèle. Ceci est dû au fait que, lorsque le modèle ne correspond
+pas (autrement dit, sa négation correspond), les groupes sont vides.
+Ainsi, si vous utilisez des modèles inversés, vous ne pouvez
+pas vous référer aux groupes par <code>$N</code> dans la chaîne de
+substitution !
+</div>
+
+      <p>Dans une règle de réécriture,
+      <a id="rhs" name="rhs"><em>Substitution</em></a> est la chaîne
+      de caractères qui remplace le chemin de l'URL original qui
+      correspondait au <em>Modèle</em>. <em>Substitution</em> peut
+      être :</p>
+
+      <dl>
+
+        <dt>un chemin du système de fichiers</dt>
+
+        <dd>Il indique alors la localisation dans le système de
+       fichiers de la ressource qui doit être envoyée au client.</dd>
+
+        <dt>chemin d'URL</dt>
+
+        <dd>Un chemin relatif à la valeur de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> vers la ressource qui
+       doit être servie. Notez que <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+       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
+       <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
+       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
+       chemin d'URL résultant, utilisez le drapeau <code>[PT]</code>
+       comme décrit ci-dessous.</dd>
+
+        <dt>URL absolue</dt>
+
+        <dd>Si une URL absolue est spécifiée,
+       <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 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 <code>[R]</code> ci-dessous.</dd>
+
+        <dt><code>-</code> (tiret)</dt>
+
+        <dd>Un tiret indique qu'aucune substitution ne doit être
+       effectuée (le chemin considéré est transmis sans changement).
+       Ceci est utile quand un drapeau doit être appliqué sans
+       modifier le chemin (voir ci-dessous).</dd>
+
+      </dl>
+
+      <p>En plus du texte, la chaîne <em>Substition</em> peut
+      comporter :</p>
+
+      <ol>
+        <li>des références arrières (<code>$N</code>) vers le modèle
+       d'une directive RewriteRule</li>
+
+        <li>des références arrières (<code>%N</code>) vers le dernier
+       modèle d'une directive RewriteCond qui correspondait</li>
+
+        <li>des variables du serveur comme dans les chaînes de test de
+       condition d'une règle (<code>%{VARNAME}</code>)</li>
+
+        <li>des appels de
+       <a href="#mapfunc">fonctions de comparaison</a>
+       (<code>${nom correspondance:clé|défaut}</code>)</li>
+      </ol>
+
+      <p>Les références arrières sont des identificateurs de la forme
+      <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
+      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
+      variables sont évaluées dans l'ordre ci-dessus.</p>
+
+      <p>Comme mentionné précédemment, toutes les règles de
+      réécriture sont appliquées à la chaîne de <em>Substitution</em>
+      (selon l'ordre dans lequel elles sont définies dans le fichier
+      de configuration). L'URL est <strong>intégralement
+      remplacée</strong> par la chaîne de <em>Substitution</em> 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 <code><strong>L</strong></code>.</p>
+
+     <div class="note"><h3>Modifier la chaîne de requête</h3>
+      <p>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 <code>[QSA]</code>.</p>
+     </div>
+
+
+      <p>En outre, vous pouvez spécifier des <a name="rewriteflags" id="rewriteflags">actions</a> spéciales à effectuer en ajoutant
+      des
+      <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
+      comme troisième argument de la directive
+      <code>RewriteRule</code>. Séparés par des virgules au sein d'une
+      liste encadrée par des crochets, les <em>drapeaux</em> peuvent
+      être choisis parmi les suivants : </p>
+
+      <dl>
+        <dt>'<code>B</code>' (références arrière échappées)</dt>
+        <dd><p>Les URLs ne doivent pas être échappées pour pouvoir être
+       comparées par Apache, si bien que les références arrières
+       renverront une valeur non échappée au moment où elles seront
+       appliquées. En utilisant le drapeau B, les caractères non
+       alphanumériques des références arrières seront echappés. Par
+       exemple, considérons la règle :</p>
+        <div class="example"><p><code>
+        RewriteRule ^(/.*)$ /index.php?show=$1
+        </code></p></div>
+        <p>Elle va faire correspondre <code>/C++</code> à
+       <code>index.php?show=/C++</code>. Mais elle va aussi faire
+       correspondre <code>/C%2b%2b</code> à
+       <code>/index.php?show=/C++</code>, car le caractère
+       <code>%2b</code> n'a pas été échappé. Par contre, avec le
+       drapeau B, la substitution s'effectuera vers
+       <code>/index.php?show=/C%2b%2b</code>.</p>
+        <p>Ce processus d'échappement est particulièrement nécessaire
+       dans le contexte du mandataire, où l'adresse d'arrière-plan ne
+       fonctionnera pas si elle se présente sous une forme
+       non échappée.</p>
+        </dd>
+
+        <dt>'<code>chain|C</code>'
+        (chaînage avec la règle suivante)</dt><dd>
+         Ce drapeau effectue un chaînage entre la règle courante et la
+        suivante (qui peut elle-même être chaînée avec la suivante, et
+        ainsi de suite). Ceci provoque l'effet suivant : si une règle
+        correspond, le processus continue normalement - le drapeau n'a
+        aucun effet. Si la règle ne correspond <strong>pas</strong>,
+        toutes les règles chaînées suivantes sont ignorées. Par
+        exemple, ce drapeau peut être utilisé pour supprimer la
+        partie ``<code>.www</code>'', dans un jeu de règles au niveau
+        du répertoire, lorsque vous faites intervenir une redirection
+        externe (où la partie ``<code>.www</code>'' ne doit pas
+        figurer !).</dd>
+
+        <dt>'<code>cookie|CO=</code><em>NOM</em>:<em>VAL</em>:<em>domaine</em>[:<em>durée
+       de vie</em>[:<em>chemin</em>[:<em>sécurité</em>[:<em>http
+       seulement</em>]]]]'
+        (définit un cookie)</dt><dd>
+        Ce drapeau définit un cookie au niveau du navigateur du client.
+       Le nom du cookie est spécifié par <em>NOM</em>, et sa valeur
+       par <em>VAL</em>. Le champ <em>domaine</em> est le domaine du
+       cookie, comme '.apache.org', le champ optionnel
+       <em>durée de vie</em> est la durée de vie du cookie en minutes
+       (0 signifie que le cookie expire à la fin de la session),
+       et le champ optionnel <em>chemin</em> le chemin du cookie. Si
+       <em>sécurité</em> est défini à 'secure, 'true' ou '1', le cookie ne peut
+       être transmis que par une connexion sécurisée. Si <em>http
+       seulement</em> est défini à ''HttpOnly', 'true' ou '1', le
+       drapeau <code>HttpOnly</code> est utilisé, ce qui rend le cookie
+       inaccessible au code JavaScript sur les navigateurs qui
+       supportent ce dernier.</dd>
+
+       <dt>'<code>discardpathinfo|DPI'
+       (ne pas tenir compte de PATH_INFO)</code></dt><dd>
+        <p>Dans un contexte de répertoire, l'URI par rapport auquel
+       chaque règle <code class="directive">RewriteRule</code> effectue ses
+       comparaisons est la concaténation de la valeur courante de l'URI
+       et de PATH_INFO.</p>
+
+       <p>L'URI courant est soit l'URI initial tel qu'envoyé par le
+       client, soit le résultat d'un passage à travers le processus de
+       réécriture, soit le résultat de la règle précédente du processus
+       de réécriture courant.</p>
+
+       <p>Par contre, PATH_INFO qui est ajouté à l'URI avant chaque
+       règle reflète la valeur qu'avait PATH_INFO avant le processus de
+       réécriture. En conséquence, si de larges parties de l'URI sont
+       retenues et copiées dans une chaîne de substitution au cours de
+       multiples directives <code class="directive">RewriteRule</code>, et ceci
+       sans tenir compte de la part qui revient à PATH_INFO dans l'URI,
+       il se peut que l'URI final se voit ajouter plusieurs copies de
+       PATH_INFO.</p>
+
+       <p>Utilisez ce drapeau dans toute substitution où le PATH_INFO
+       résultant de la mise en correspondance précédente de cette
+       requête avec le système de fichiers ne présente pas d'intérêt.
+       Ce drapeau indique qu'il ne faut pas tenir compte du PATH_INFO
+       construit avant que le processus de réécriture courant ait
+       commencé. PATH_INFO ne sera pas recalculé avant que le processus
+       de réécriture courant se termine. Les règles suivantes
+       rencontrées au cours du processus ne verront que le résultat
+       direct des substitutions, sans ajout du PATH_INFO.</p></dd>
+
+        <dt>
+        '<code>env|E=</code><em>VAR</em>:<em>VAL</em>'
+        (définit une variable d'environnement)</dt><dd>
+        Ce drapeau force une variable d'environnement nommée
+       <em>VAR</em> à prendre la valeur <em>VAL</em>, où
+       <em>VAL</em> peut contenir des références arrières vers des
+       expressions rationnelles (<code>$N</code> et <code>%N</code>)
+       qui seront évaluées. Vous pouvez utiliser ce drapeau plusieurs
+       fois pour définir plusieurs variables. Les variables peuvent
+       ensuite être déréférencées dans de nombreux cas, et le plus
+       souvent depuis XSSI (via <code>&lt;!--#echo
+        var="VAR"--&gt;</code>) ou CGI (<code>$ENV{'VAR'}</code>).
+       Vous pouvez déréférencer la variable dans un modèle de
+       directive RewriteCond ultérieure, en utilisant
+       <code>%{ENV:VAR}</code>. Ce drapeau permet de supprimer
+       des informations d'une URL, tout en conservant la trace de
+       ces informations.</dd>
+
+        <dt>'<code>forbidden|F</code>' (force l'interdiction d'une
+       URL)</dt><dd>
+        Ce drapeau force l'interdiction de l'URL courante - il renvoie
+       immédiatement une réponse HTTP 403 (FORBIDDEN). Ce drapeau,
+       associé à des directives RewriteCond appropriées, permet de
+       bloquer de manière conditionnelle certaines URLs.</dd>
+
+        <dt>'<code>gone|G</code>' (signale la non-existence d'une
+       URL)</dt><dd>
+        Ce drapeau signale la non-existence d'une URL - il renvoie
+       immédiatement une réponse HTTP 410 (GONE). Il permet de marquer
+       les pages qui n'existent plus comme "gone".</dd>
+
+        <dt>
+        '<code>handler|H</code>=<em>Gestionnaire de contenu</em>'
+        (impose un gestionnaire de contenu)</dt><dd>
+         Impose <em>Gestionnaire de contenu</em> comme gestionnaire de
+        contenu pour le fichier cible. Ce drapeau permet par exemple
+        de simuler la directive
+        <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> du
+        module <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>, qui impose en interne le
+        gestionnaire ``<code>cgi-script</code>'' à tous les fichiers
+        du répertoire correspondant.<br />
+        Dans un contexte de niveau répertoire, aucune substitution ne
+        doit modifier le chemin. N'utilisez ce drapeau dans un contexte
+        de répertoire qu'avec <code>-</code> (tiret) comme
+        substitution, faute de quoi la requête echouera.</dd>
+
+        <dt>'<code>last|L</code>'
+        (dernière règle)</dt><dd>
+       Termine le processus de réécriture ici et n'applique plus
+       aucune règle de réécriture. Ce drapeau est équivalent à la
+       commande Perl <code>last</code> ou la commande C
+       <code>break</code>. Il permet d'éviter la réécriture par les
+       règles suivantes d'une URL déjà réécrite. Rappelez-vous
+       cependant que si une directive
+       <code class="directive">RewriteRule</code> génère une redirection
+       interne (ce qui arrive fréquemment lors d'une réécriture dans
+       un contexte de répertoire), la requête sera réinjectée et le
+       processus de réécriture sera réitéré à partir de la
+       première directive <code class="directive">RewriteRule</code>.</dd>
+
+        <dt>'<code>next|N</code>'
+        (prochain round)</dt><dd>
+        Relance le processus de réécriture (toujours à partir de la
+       première règle). Cette fois, l'URL à comparer n'est plus l'URL
+       originale, mais plutôt l'URL renvoyée par la dernière règle de
+       réécriture. Ce drapeau est équivalent à la commande Perl
+       <code>next</code> ou la commande C <code>continue</code>. Il
+       permet de redémarrer le processus de réécriture - en se
+       positionnant immédiatement au niveau de la première règle.
+       <strong>Prenez garde à ne pas créer de bouclage
+       infini !</strong></dd>
+
+        <dt>'<code>nocase|NC</code>'
+        (insensible à la casse)</dt><dd>
+        Ce drapeau rend le <em>Modèle</em> insensible à la casse,
+       c'est à dire ne tenant pas compte des majuscules/minuscules
+       lorsque le <em>Modèle</em> est comparé avec l'URL
+       courante.</dd>
+
+        <dt>
+          '<code>noescape|NE</code>'
+          (pas d'échappement de l'URI en sortie)</dt><dd>
+          Ce drapeau empêche mod_rewrite d'appliquer les règles
+         d'échappement d'URI usuelles au résultat d'une réécriture.
+         Normalement, les caractère spéciaux (comme '%', '$', ';',
+         etc...) sont échappés en leurs équivalents hexadécimaux
+         (respectivement '%25', '%24', et '%3B') ; ce drapeau empêche
+         cela de se produire. Il permet au symbole '%' d'apparaître
+         en sortie, comme dans
+<div class="example"><p><code>
+    RewriteRule ^/foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
+</code></p></div>
+          qui remplacerait '<code>/foo/zed</code>' par la requête plus
+         sure '<code>/bar?arg=P1=zed</code>'.
+        </dd>
+
+        <dt>
+          '<code>nosubreq|NS</code>'
+          (sous-requêtes non concernées)</dt><dd>
+          <p>Si ce drapeau est présent, le moteur de réécriture
+         n'applique pas la règle si la requête courante est une
+         sous-requête interne. Par exemples, des sous-requêtes sont
+         générées en interne par Apache lorsque
+         <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> essaie de trouver des
+         informations à propos d'éventuels fichiers de répertoire par
+         défaut (fichiers <code>index.xxx</code>). Dans le cas d'une
+         sous-requête, ce n'est pas toujours utile, et peut même
+         provoquer des erreurs si l'ensemble du jeu de règles est
+         appliqué. Ce drapeau permet d'exclure certaines règles.</p>
+          <p>Pour déterminer si l'on doit appliquer une règle ou pas,
+         si une URL est préfixée par un script CGI, pour forcer son
+         traitement par le script CGI, vous allez probablement
+         rencontrer des problèmes (ou tout du moins une surcharge
+         significative) avec les sous-requêtes. Dans ce cas,
+         utilisez ce drapeau</p>
+        </dd>
+
+        <dt>
+          '<code>proxy|P</code>' (impose le mandataire)</dt><dd>
+          Ce drapeau force l'envoi de la partie substitution en
+         interne en tant que requête mandataire, et (le processus de
+         réécriture s'arrête ici) son envoi immédiat vers le <a href="mod_proxy.html">module proxy</a>. Vous devez vous
+         assurer que la chaîne de substitution est un URI valide
+         (débutant typiquement par
+         <code>http://</code><em>nom d'hôte</em>) pouvant être traitée
+         par le module proxy d'Apache. Si ce n'est pas le cas, le
+         module proxy vous renverra une erreur. Utilisez ce drapeau
+         pour implémenter de manière plus puissante la directive <a href="mod_proxy.html#proxypass">ProxyPass</a>, pour mettre
+         en correspondance un contenu distant dans l'espace de
+         nommage du serveur local.
+
+          <p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour
+         pouvoir utiliser ce drapeau..</p>
+        </dd>
+
+        <dt>
+          '<code>passthrough|PT</code>'
+          (passage au gestionnaire suivant)</dt><dd>
+           Ce drapeau force le moteur de réécriture à affecter
+          la valeur du champ <code>filename</code> au
+          champ <code>uri</code> de la structure interne
+          <code>request_rec</code>. Ce drapeau n'est qu'une astuce
+          permettant un traitement supplémentaire de la sortie des
+          directives <code>RewriteRule</code>, en utilisant
+          <code>Alias</code>, <code>ScriptAlias</code>,
+          <code>Redirect</code>, ou d'autres directives en provenance
+          de divers traducteurs URI/nom de fichier. Par exemple, pour
+          réécrire <code>/abc</code> vers <code>/def</code> avec
+          <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, puis <code>/def</code> vers
+          <code>/ghi</code> avec <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> :
+<div class="example"><p><code>
+    RewriteRule ^/abc(.*)  /def$1 [PT]<br />
+    Alias       /def       /ghi
+</code></p></div>
+          Si le drapeau <code>PT</code> est omis,
+         <code>mod_rewrite</code> va réécrire
+         <code>uri=/abc/...</code> vers <code>filename=/def/...</code>
+         comme tout traducteur URI/nom de fichier compatible avec
+         l'API doit le faire. Puis, <code>mod_alias</code> va tenter
+         une transition URI vers nom de fichier, et va échouer.
+
+          <p>Note: <strong>Vous devez utiliser ce drapeau si vous
+         voulez mélanger des directives en provenance de différents
+         modules qui effectuent une traduction
+         URL/nom de fichier</strong>. Un exemple typique est
+         l'utilisation conjointe de <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et de
+         <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+          <p>Le drapeau <code>PT</code> rend implicite la présence du
+         drapeau <code>L</code> flag : la réécriture sera stoppée afin
+         de transmettre la requête à la phase suivante du
+         traitement.</p>
+        </dd>
+
+        <dt>'<code>qsappend|QSA</code>'
+        (ajout d'une chaîne de requête - query string)</dt><dd>
+        Ce drapeau force le moteur de réécriture à ajouter la chaîne
+       de substitution à la chaîne de requête au lieu de remplacer
+       cette dernière par la chaîne de substitution.
+       Vous pouvez ainsi ajouter des données à la chaîne de requête
+       via une règle de réécriture.</dd>
+
+        <dt>'<code>redirect|R</code>
+          [=<em>code</em>]' (force une <a id="redirect" name="redirect">redirection</a>)</dt><dd>
+        <p>Préfixe la <em>chaîne de substitution</em> par
+       <code>http://hôte[:port]/</code> (ce qui fait de la nouvelle
+       URL un URI) pour forcer une redirection externe. Si aucun
+       <em>code</em> n'est défini, une réponse HTTP 302 (MOVED
+          TEMPORARILY) sera renvoyée. Si vous voulez renvoyer un autre
+         code de réponse, spécifiez simplement le nombre approprié ou
+         utilisez un des noms symboliques suivants : <code>temp</code>
+         (défaut), <code>permanent</code> ou <code>seeother</code>.
+         Vous pouvez utiliser ce drapeau pour que les règles mettent
+         l'URL sous forme canonique et la renvoient au client, pour
+         traduire ``<code>/~</code>'' en ``<code>/u/</code>'', ou pour
+         ajouter systématiquement un slash à
+         <code>/u/</code><em>utilisateur</em>, etc...<br />
+          <strong>Note:</strong> Si vous utilisez ce drapeau,
+         assurez-vous que le champ de substitution est une URL
+         valide ! Si ce n'est pas le cas, vous serez redirigé vers
+         une URL invalide. Souvenez-vous que, s'il est seul, ce
+         drapeau va seulement préfixer l'URL par
+         <code>http://hôte[:port]/</code>, et que le processus de
+         réécriture va se poursuivre. En général, vous voudrez plutôt
+         stopper la réécriture à ce point, et rediriger immédiatement.
+         Pour stopper la réécriture, vous pouvez ajouter le drapeau
+         'L'.</p>
+          <p>Bien qu'on utilise en général ce drapeau pour les
+         redirections, on peut spécifier tout code de statut valide.
+         Si le code de statut est en dehors de la gamme des codes de
+         redirection (300-399), la chaîne de <em>Substitution</em> est
+         supprimée et le processus de réécriture stoppé comme si le
+         drapeau <code>L</code> était présent.</p>
+        </dd>
+
+        <dt>'<code>skip|S</code>=<em>num</em>'
+        (saute la/les règle(s) suivantes)</dt><dd>
+        Ce drapeau force le moteur de réécriture à sauter les
+       <em>num</em> règles consécutives suivantes, si la règle courante
+       s'applique. Il permet de simuler une structure if-then-else : la
+       dernière règle du bloc "then" devient <code>skip=N</code>, où N
+       est le nombre de règles contenues dans le bloc "else" (ce qui est
+       un comportement différent de celui du drapeau 'chain|C' !).</dd>
+
+        <dt>
+        '<code>type|T</code>=<em>type MIME</em>'
+        (force le type MIME)</dt><dd>
+         Force le <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> du fichier cible à
+        <em>type MIME</em>. Ceci permet de définir le type de contenu
+        en fonction de certaines conditions.
+        Dans un contexte de répertoire, utilisez exclusivement
+        <code>-</code> (tiret) comme substitution, faute de quoi le
+        type MIME défini à l'aide de ce drapeau sera perdu à cause d'un
+        rejeu du traitement en interne.</dd>
+      </dl>
+
+
+<div class="note"><h3>Développement du répertoire home</h3>
+<p> 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 <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code>.</p>
+
+<p> Ce développement n'est pas effectué si le drapeau <em>PT</em> est
+utilisé dans la directive <code class="directive"><a href="#rewriterule">RewriteRule</a></code></p>
+</div>
+
+<div class="note"><h3>Réécritures dans le contexte de répertoire</h3>
+
+<p>Le moteur de réécriture peut être utilisé dans les fichiers <a href="../howto/htaccess.html">.htaccess</a>. Pour activer le moteur de
+réécriture pour ces fichiers, vous devez préciser "<code>RewriteEngine
+On</code>" <strong>et</strong> "<code>Options FollowSymLinks</code>"
+doit être activé. Si votre administrateur a interdit la surcharge de
+<code>FollowSymLinks</code> pour un répertoire utilisateur, vous ne
+pouvez pas utiliser le moteur de réécriture. Cette restriction est
+nécessaire pour des raisons de sécurité.</p>
+
+<p>Lorsqu'on utilise le moteur de réécriture dans les fichiers
+<code>.htaccess</code>, le préfixe du répertoire (qui est
+toujours le même pour un répertoire donné) est automatiquement
+<em>supprimé</em> pour la comparaison du modèle et automatiquement
+<em>ajouté</em> une fois la substitution effectuée. Cette fonctionnalité
+est nécessaire pour de nombreux cas de réécriture ; sans elle, vous
+seriez obligé de tenir compte du répertoire parent pour la comparaison,
+ce qui n'est pas toujours
+possible. Il y a une exception : si une chaîne de substitution commence
+par <code>http://</code>, le préfixe du répertoire ne sera
+<strong>pas</strong> ajouté, et une redirection externe (ou le passage
+par un mandataire, si le drapeau <strong>P</strong> est utilisé) sera
+initiée. Voir la directive <code class="directive"><a href="#rewritebase">RewriteBase</a></code> pour plus de détails.</p>
+
+<p>Le moteur de réécriture peut aussi être utilisé dans les sections
+<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> avec les
+mêmes règles de comparaison des préfixes que celles qui s'appliquent
+pour les fichiers <code>.htaccess</code>. Cependant, il est en général
+plus simple, pour éviter la complication des substitutions de préfixes,
+de définir les règles de réécriture dans le contexte du serveur
+principal ou des hôtes virtuels, plutôt que dans une section
+<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>.</p>
+
+<p>Bien que du point de vue syntaxique, il soit permis de définir des
+règles de réécriture dans les sections <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> et <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, ce n'est à priori
+d'aucune utilité et n'est pas supporté.</p>
+
+</div>
+
+     <p>Voici toutes les combinaisons de substitution et leurs
+     significations :</p>
+
+      <p><strong>Dans la configuration au niveau du serveur principal
+      (<code>httpd.conf</code>)<br />
+       pour la requête ``<code>GET
+      /chemin/infochemin</code>'':</strong><br />
+      </p>
+
+<div class="note"><pre>
+<strong>Règle</strong>                          <strong>Résultat de la substitution</strong>
+----------------------------------------------  ----------------------------------
+^/chemin(.*) autre-chemin$1                      non valide, non supporté
+
+^/chemin(.*) autre-chemin$1  [R]                 non valide, non supporté
+
+^/chemin(.*) autre-chemin$1  [P]                 non valide, non supporté
+----------------------------------------------  ----------------------------------
+^/chemin(.*) /autre-chemin$1                     /autre-chemin/infochemin
+
+^/chemin(.*) /autre-chemin$1 [R]                 http://cet-hôte/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) /autre-chemin$1 [P]                 n'a pas lieu d'être, non supporté
+----------------------------------------------  ----------------------------------
+^/chemin(.*) http://cet-hôte/autre-chemin$1      /autre-chemin/infochemin
+
+^/chemin(.*) http://cet-hôte/autre-chemin$1 [R]  http://cet-hôte/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) http://cet-hôte/autre-chemin$1 [P]  n'a pas lieu d'être, non supporté
+----------------------------------------------  ----------------------------------
+^/chemin(.*) http://autre hôte/autre-chemin$1     http://autre hôte/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) http://autre hôte/autre-chemin$1 [R] http://autre hôte/autre-chemin/infochemin
+                                                via redirection externe
+                                                (le drapeau [R] est
+                                               redondant)
+
+^/chemin(.*) http://autre hôte/autre-chemin$1 [P] http://autre hôte/autre-chemin/infochemin
+                                                via un mandataire interne
+</pre></div>
+
+      <p><strong>Dans une configuration de niveau répertoire pour
+      <code>/chemin</code><br />
+       (<code>/chemin/physique/vers/chemin/.htacccess</code>, avec
+      <code>RewriteBase /chemin</code>)<br />
+       pour la requête ``<code>GET
+      /chemin/chemin-local/infochemin</code>'':</strong><br />
+     </p>
+
+<div class="note"><pre>
+<strong>Règle</strong>                          <strong>Résultat de la substitution</strong>
+----------------------------------------------  ----------------------------------
+^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
+</pre></div>
+  
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="../fr/mod/mod_rewrite.html" title="Français">&nbsp;fr&nbsp;</a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2009 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>
+</body></html>
\ No newline at end of file
diff --git a/docs/manual/mod/mod_rewrite.xml.fr b/docs/manual/mod/mod_rewrite.xml.fr
new file mode 100644 (file)
index 0000000..c291145
--- /dev/null
@@ -0,0 +1,1856 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 729539 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- Reviewed by : Vincent Deffontaines -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<modulesynopsis metafile="mod_rewrite.xml.meta">
+
+<name>mod_rewrite</name>
+
+<description>Ce module fournit un moteur de r&eacute;&eacute;criture &agrave; base de
+r&egrave;gles permettant de r&eacute;&eacute;crire les URLs des requ&ecirc;tes
+&agrave; la vol&eacute;e</description>
+
+<status>Extension</status>
+<sourcefile>mod_rewrite.c</sourcefile>
+<identifier>rewrite_module</identifier>
+<compatibility>Disponible &agrave; partir de la version 1.3
+d'Apache</compatibility>
+
+<summary>
+      <p>Ce module utilise un moteur de r&eacute;&eacute;criture &agrave; base de r&egrave;gles
+      (bas&eacute; sur un interpr&eacute;teur d'expressions rationnelles) pour
+      r&eacute;&eacute;crire les URLs des requ&ecirc;tes &agrave; la vol&eacute;e. Il accepte un nombre
+      illimit&eacute; de r&egrave;gles, ainsi q'un nombre illimit&eacute; de conditions
+      attach&eacute;es &agrave; chaque r&egrave;gle, fournissant ainsi un m&eacute;canisme de
+      manipulation d'URL vraiment souple et puissant. Les manipulations
+      d'URL peuvent d&eacute;pendre de nombreux tests, des variables du
+      serveur, des variables d'environnement, des en-t&ecirc;tes HTTP ou de
+      l'horodatage. On peut m&ecirc;me lancer des requ&ecirc;tes vers une base de
+      donn&eacute;es externe sous divers formats, afin d'obtenir une
+      s&eacute;lection d'URL tr&egrave;s fine.</p>
+
+      <p>Ce module agit sur l'ensemble de l'URL (la partie concernant
+      le chemin incluse) au niveau du serveur
+      (<code>httpd.conf</code>) mais aussi au niveau du r&eacute;pertoire
+      (<code>.htaccess</code>), et peut inclure des arguments de cha&icirc;ne
+      de requ&ecirc;te (query string) comme r&eacute;sultat. Le r&eacute;sultat de la r&eacute;&eacute;criture peut
+      renvoyer vers un sous-traitement interne, une redirection vers
+      une requ&ecirc;te externe, ou m&ecirc;me vers le flux d'un proxy interne.</p>
+
+      <p>Vous trouverez d'avantage de d&eacute;tails, discussions et exemples
+      dans la
+      <a href="../rewrite/">documentation d&eacute;taill&eacute;e
+      sur mod_rewrite</a>.</p>
+</summary>
+
+<seealso><a href="#rewriteflags">Drapeaux des r&egrave;gles de r&eacute;&eacute;criture</a></seealso>
+
+
+<section id="quoting"><title>Marquage des caract&egrave;res sp&eacute;ciaux</title>
+
+      <p>Depuis Apache 1.3.20, les caract&egrave;res sp&eacute;ciaux dans les
+      <em>cha&icirc;nes de test</em> et les cha&icirc;nes de <em>Substitution</em>
+      peuvent &ecirc;tre &eacute;chapp&eacute;s (c'est &agrave; dire trait&eacute;s comme des caract&egrave;res
+      normaux sans tenir compte de leur signification en tant que
+      caract&egrave;re sp&eacute;cial), en les faisant pr&eacute;c&eacute;der d'un caract&egrave;re
+      anti-slash ('\'). En d'autres termes, vous pouvez inclure un
+      v&eacute;ritable signe "dollar" dans une cha&icirc;ne de <em>Substitution</em>
+      en utilisant '<code>\$</code>' ; ceci emp&ecirc;che mod_rewrite de le
+      traiter comme une r&eacute;f&eacute;rence arri&egrave;re.</p>
+</section>
+
+<section id="EnvVar"><title>Variables d'environnement</title>
+
+      <p>Ce module conserve le contenu de deux variables d'environnement
+      CGI/SSI additionnelles (non standards) nomm&eacute;es
+      <code>SCRIPT_URL</code> et <code>SCRIPT_URI</code>. Celles-ci
+      contiennent l'adresse <em>logique</em> vue du Web
+      de la ressource concern&eacute;e, tandis que les variables CGI/SSI
+      standards <code>SCRIPT_NAME</code> et
+      <code>SCRIPT_FILENAME</code> contiennent l'adresse
+      <em>physique</em> de la ressource vue du syst&egrave;me. </p>
+
+      <p>Note : ces variables conservent l'URI/URL <em>telle qu'elle
+      &eacute;tait &agrave; l'arriv&eacute;e de la requ&ecirc;te</em>, c'est &agrave; dire
+      <em>avant</em> tout processus de r&eacute;&eacute;criture. Il est important de
+      le savoir car le processus de r&eacute;&eacute;criture est principalement
+      utilis&eacute; pour r&eacute;&eacute;crire des URLs logiques en chemins physiques.
+      <br />
+      Ces variables sont d&eacute;finies dans un contexte du niveau serveur, ce
+      qui signifie qu'elles ne sont disponibles que dans un contexte de
+      r&eacute;pertoire, si <directive>RewriteEngine</directive> est positionn&eacute; &agrave;
+      <code>on</code> dans un contexte de niveau serveur.</p>
+
+
+<example><title>Exemple</title>
+<pre>
+SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
+SCRIPT_FILENAME=/u/rse/.www/index.html
+SCRIPT_URL=/u/rse/
+SCRIPT_URI=http://en1.engelschall.com/u/rse/
+</pre>
+</example>
+
+</section>
+
+<section id="vhosts"><title>R&eacute;&eacute;criture et h&ocirc;tes virtuels</title>
+
+     <p>Par d&eacute;faut, les h&ocirc;tes virtuels n'h&eacute;ritent pas de la
+     configuration de <module>mod_rewrite</module> telle qu'elle est
+     d&eacute;finie dans le contexte du serveur principal. Pour que la
+     configuration du serveur principal s'applique aux h&ocirc;tes virtuels,
+     vous devez ins&eacute;rez les directives suivantes dans chaque section
+     <directive
+     module="core" type="section">VirtualHost</directive> :</p>
+
+     <example>
+     RewriteEngine On<br />
+     RewriteOptions Inherit
+     </example>
+</section>
+
+<section id="Solutions"><title>Solutions pratiques</title>
+
+    <p>Vous trouverez de nombreux exemples d'utilisation courante (et
+    moins courante) de mod_rewrite dans le
+    <a href="../rewrite/rewrite_guide.html">Guide de r&eacute;&eacute;criture</a>,
+    et dans le
+    <a href="../rewrite/rewrite_guide_advanced.html"
+    >Guide de r&eacute;&eacute;criture avanc&eacute;e</a>.</p>
+
+</section>
+
+<directivesynopsis>
+<name>RewriteEngine</name>
+<description>Active ou d&eacute;sactive l'ex&eacute;cution du
+moteur de r&eacute;&eacute;criture</description>
+<syntax>RewriteEngine on|off</syntax>
+<default>RewriteEngine off</default>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context><context>.htaccess</context></contextlist>
+<override>FileInfo</override>
+
+<usage>
+
+      <p>La directive <directive>RewriteEngine</directive> active ou
+      d&eacute;sactive l'ex&eacute;cution du moteur de r&eacute;&eacute;criture. Si sa valeur est
+      <code>off</code>, ce module n'ex&eacute;cutera aucun traitement et ne
+      mettra pas &agrave; jour les variables d'environnement
+      <code>SCRIPT_URx</code>.</p>
+
+      <p>Pour d&eacute;sactiver le module, il vaut mieux utiliser cette
+      directive que commenter toutes les directives <directive
+      module="mod_rewrite">RewriteRule</directive> !</p>
+
+      <p>Notez que les  h&ocirc;tes virtuels n'h&eacute;ritent pas des
+      configurations de r&eacute;&eacute;criture. Ceci implique que vous devez
+      ins&eacute;rer une directive <code>RewriteEngine on</code> dans chaque
+      h&ocirc;te virtuel pour lequel vous souhaitez utiliser des r&egrave;gles
+      de r&eacute;&eacute;criture.</p>
+
+      <p>Les directives <directive>RewriteMap</directive> du type
+      <code>prg</code> ne sont pas prises en compte au cours de
+      l'initialisation du serveur si elle ont &eacute;t&eacute; d&eacute;finies dans un
+      contexte o&ugrave; la directive <directive>RewriteEngine</directive> n'a
+      pas &eacute;t&eacute; d&eacute;finie &agrave; <code>on</code>.</p>
+
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteOptions</name>
+<description>Configure certaines options sp&eacute;ciales
+pour le moteur de r&eacute;&eacute;criture</description>
+<syntax>RewriteOptions <var>Options</var></syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context><context>.htaccess</context></contextlist>
+<override>FileInfo</override>
+<compatibility><code>MaxRedirects</code> n'est plus disponible depuis
+la version version 2.1</compatibility>
+<usage>
+
+      <p>La directive <directive>RewriteOptions</directive> d&eacute;finit
+      certaines options sp&eacute;ciales pour la configuration au niveau du
+      serveur ou du r&eacute;pertoire. La cha&icirc;ne de caract&egrave;res <em>Option</em>
+      ne peut actuellement prendre qu'une des valeurs suivantes :</p>
+
+      <dl>
+      <dt><code>inherit</code></dt>
+      <dd>Ceci force la configuration locale &agrave; h&eacute;riter de la
+      configuration du niveau sup&eacute;rieur. Dans le contexte des h&ocirc;tes
+      virtuels, cela signifie que les correspondances, conditions et
+      r&egrave;gles du serveur principal sont h&eacute;rit&eacute;es. Dans le contexte des
+      r&eacute;pertoires, cela signifie que les conditions et r&egrave;gles de la
+      configuration <code>.htaccess</code> ou les sections <directive
+      type="section" module="core">Directory</directive> du r&eacute;pertoire
+      parent sont h&eacute;rit&eacute;es. Les r&egrave;gles h&eacute;rit&eacute;es sont virtuellement
+      copi&eacute;es dans la section o&ugrave; cette directive est utilis&eacute;e. Si elles
+      sont utilis&eacute;es avec des r&egrave;gles locales, les r&egrave;gles h&eacute;rit&eacute;es sont
+      plac&eacute;es apr&egrave;s ces derni&egrave;res. La place de cette directive - avant
+      ou apr&egrave;s les r&egrave;gles locales - n'a aucune influance sur ce
+      comportement. Si des r&egrave;gles locales ont forc&eacute; l'arr&ecirc;t de la
+      r&eacute;&eacute;criture, les r&egrave;gles h&eacute;rit&eacute;es ne seront pas trait&eacute;es.
+      </dd>
+      </dl>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteLog</name>
+<description>D&eacute;finit le nom du fichier utilis&eacute; pour la journalisation
+des traitements du moteur de r&eacute;&eacute;criture</description>
+<syntax>RewriteLog <em>chemin du fichier journal</em></syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+      <p>La directive <directive>RewriteLog</directive> d&eacute;finit le nom
+      du fichier dans lequel le serveur journalise tout processus de
+      r&eacute;&eacute;criture qu'il effectue. Si le nom ne commence pas par un
+      slash ('<code>/</code>'), il est consid&eacute;r&eacute; comme relatif &agrave; la
+      <em>Racine du serveur</em>. Cette directive ne doit appara&icirc;tre
+      qu'une seule fois dans la configuration du serveur.</p>
+
+<note>    Il est d&eacute;conseill&eacute; de positionner
+       <em>chemin du fichier journal</em> &agrave; <code>/dev/null</code>
+       pour d&eacute;sactiver la journalisation des processus de r&eacute;&eacute;criture,
+       car m&ecirc;me si le moteur de r&eacute;&eacute;criture n'envoie plus sa sortie
+       dans un fichier, il continue &agrave; cr&eacute;er un fichier journal en
+       interne, <strong>ce qui va avoir pour effet de ralentir le
+       serveur sans fournir aucun avantage &agrave; l'administrateur !
+       </strong> Pour d&eacute;sactiver la journalisation, vous pouvez
+       soit supprimer (ou commenter) la directive
+       <directive>RewriteLog</directive>, soit utiliser
+       <code>RewriteLogLevel 0</code> !
+</note>
+
+<note type="securitywarning"><title>S&eacute;curit&eacute;</title>
+
+Se r&eacute;f&eacute;rer au document
+<a href="../misc/security_tips.html">Conseils &agrave; propos
+de la s&eacute;curit&eacute; dans Apache</a> pour plus de d&eacute;tails sur la mani&egrave;re
+dont votre s&eacute;curit&eacute; pourrait &ecirc;tre compromise si le r&eacute;pertoire o&ugrave; se
+trouvent les fichiers journaux est accessible en &eacute;criture par quiconque
+autre que l'utilisateur qui d&eacute;marre le serveur.
+</note>
+
+<example><title>Exemple</title>
+RewriteLog "/usr/local/var/apache/logs/rewrite.log"
+</example>
+
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteLogLevel</name>
+<description>D&eacute;finit la verbosit&eacute; du fichier journal utilis&eacute;
+par le moteur de r&eacute;&eacute;criture</description>
+<syntax>RewriteLogLevel <em>niveau</em></syntax>
+<default>RewriteLogLevel 0</default>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+      <p>La directive <directive>RewriteLogLevel</directive> d&eacute;finit
+      le niveau de verbosit&eacute; du fichier journal de r&eacute;&eacute;criture. Le
+      niveau par d&eacute;faut 0 signifie aucune journalisation, tandis que
+      9 ou plus signifie que pratiquement toutes les actions sont
+      journalis&eacute;es.</p>
+
+      <p>Pour d&eacute;sactiver la journalisation des actions de r&eacute;&eacute;criture,
+      positionnez simplement <em>niveau</em> &agrave; 0. Ceci d&eacute;sactive
+      toute journalisation des actions de r&eacute;&eacute;criture.</p>
+
+<note> Utiliser une valeur &eacute;lev&eacute;e pour <em>niveau</em> va ralentir
+       consid&eacute;rablement votre serveur Apache ! N'utilisez une
+       journalisation de la r&eacute;&eacute;criture &agrave; un <em>niveau</em>
+       sup&eacute;rieur &agrave; 2 qu'&agrave; des fins de d&eacute;bogage !
+</note>
+
+<example><title>Exemple</title>
+RewriteLogLevel 3
+</example>
+
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteLock</name>
+<description>D&eacute;finit le nom du fichier verrou utilis&eacute; pour la
+synchronisation de <directive
+module="mod_rewrite">RewriteMap</directive></description>
+<syntax>RewriteLock <em>chemin du fichier verrou</em></syntax>
+<contextlist><context>server config</context></contextlist>
+
+<usage>
+      <p>Cette directive d&eacute;finit le nom du fichier utilis&eacute; comme
+      fichier verrou de synchronisation n&eacute;cessaire &agrave; mod_rewrite pour
+      communiquer avec les <em>programmes</em> li&eacute;s &agrave; <directive
+      module="mod_rewrite">RewriteMap</directive>. D&eacute;finissez ce
+      fichier verrou dans un chemin local (et non sur un montage NFS)
+      si vous voulez utiliser un programme de comparaison pour la
+      r&eacute;&eacute;criture. Il n'est pas n&eacute;cessaire pour les autres types de
+      comparaison pour la r&eacute;&eacute;criture.</p>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteMap</name>
+<description>D&eacute;finit une fonction de mise en correspondance pour la
+recherche de mots-cl&eacute;s</description>
+<syntax>RewriteMap <em>nom de la correspondance</em> <em>type de
+correspondance</em>:<em>source de la correspondance</em>
+</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+<compatibility>Il est possible de choisir entre plusieurs types de
+bases de donn&eacute;es depuis la version 2.0.41 d'Apache</compatibility>
+
+<usage>
+      <p>La directive <directive>RewriteMap</directive> d&eacute;finit une
+      <em>Table de correspondance pour la r&eacute;&eacute;criture</em> que les
+      fonctions de mise en correspondance
+      peuvent utiliser dans les cha&icirc;nes de substitution des r&egrave;gles
+      pour ins&eacute;rer/substituer des champs en recherchant des mots-cl&eacute;s.
+      La source utilis&eacute;e pour cette recherche peut &ecirc;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
+      et servira &agrave; sp&eacute;cifier une fonction de mise en correspondance
+      pour les cha&icirc;nes de substitution d'une r&egrave;gle de r&eacute;&eacute;criture selon
+      une des constructions suivantes :</p>
+
+      <p class="indent">
+        <strong><code>${</code> <em>nom de la
+      correspondance</em> <code>:</code>
+        <em>mot-cl&eacute;</em> <code>}</code><br />
+         <code>${</code> <em>nom de la
+      correspondance</em> <code>:</code>
+        <em>mot-cl&eacute;</em> <code>|</code> <em>valeur par d&eacute;faut</em>
+        <code>}</code></strong>
+      </p>
+
+      <p>Lorsqu'une telle construction est rencontr&eacute;e, la table de
+      correspondance <em>Nom de la correspondance</em> est consult&eacute;e
+      et la cl&eacute; <em>mot-cl&eacute;</em> recherch&eacute;e. Si la cl&eacute; est trouv&eacute;e, la
+      construction est remplac&eacute;e par
+      la <em>valeur de remplacement</em>. Si la cl&eacute; n'est pas trouv&eacute;e,
+      elle est remplac&eacute;e par la <em>valeur par d&eacute;faut</em>, ou par une
+      cha&icirc;ne vide si aucune <em>valeur par d&eacute;faut</em> n'est
+      sp&eacute;cifi&eacute;e.</p>
+
+      <p>Par exemple, vous pouvez d&eacute;finir une directive
+      <directive>RewriteMap</directive> comme suit </p>
+
+      <example>
+      RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
+      </example>
+
+      <p>Vous pourrez ensuite utiliser cette table dans une
+      directive <directive>RewriteRule</directive> comme suit :</p>
+
+      <example>
+      RewriteRule ^/ex/(.*) ${map-exemple:$1}
+      </example>
+
+      <p>Les combinaisons suivantes pour <em>type de correspondance</em>
+      et <em>source de la correspondance</em>
+      peuvent &ecirc;tre utilis&eacute;es :</p>
+
+      <ul>
+        <li>
+          <strong>Format texte standard</strong><br />
+           type de correspondance : <code>txt</code>, source de la
+          correspondance : chemin du syst&egrave;me de fichiers Unix vers un
+          fichier r&eacute;gulier valide
+
+          <p>Il s'agit de la mise en oeuvre standard de la table de
+         correspondance pour la r&eacute;&eacute;criture o&ugrave; la
+         <em>source de la correspondance</em> est un fichier ASCII
+         dont les diff&eacute;rentes lignes sont soit des lignes vides, soit
+         des lignes de commentaires (commen&ccedil;ant par un caract&egrave;re "#"),
+         soit des paires de valeurs (une seule paire
+         par ligne) comme suit :</p>
+
+          <p class="indent">
+            <strong><em>mot-cl&eacute;</em>
+            <em>valeur de remplacement</em></strong>
+          </p>
+
+<example><title>Exemple</title>
+<pre>
+##
+##  map.txt -- table de correspondance pour la r&eacute;&eacute;criture
+##
+
+Ralf.S.Engelschall    rse   # Bastard Operator From Hell
+Mr.Joe.Average        joe   # Mr. Average
+</pre>
+</example>
+
+<example>
+RewriteMap real-to-user txt:/chemin/vers/fichier/map.txt
+</example>
+        </li>
+
+        <li>
+          <strong>Format texte avec valeurs al&eacute;atoires</strong><br />
+           type de correspondance: <code>rnd</code>,
+          source de la correspondance : chemin du syst&egrave;me de fichiers
+          Unix vers un fichier r&eacute;gulier valide
+
+          <p>Ce format se diff&eacute;rencie du format texte standard
+         pr&eacute;c&eacute;dent par l'ajout d'un traitement suppl&eacute;mentaire : en
+         plus de la recherche de cl&eacute;s, le fichier est interpr&eacute;t&eacute; en
+         tenant compte de la pr&eacute;sence &eacute;ventuelle dans les valeurs de
+         remplacement de caract&egrave;res ``<code>|</code>'' signifiant
+         ``ou''. En d'autres termes, ces caract&egrave;res ``<code>|</code>''
+         permettent de sp&eacute;cifier un jeu de valeurs parmi lesquelles
+         la valeur de retour sera choisie al&eacute;atoirement. Par exemple,
+         vous pouvez utiliser les fichier de correspondance et
+         directives suivants pour mettre en oeuvre une r&eacute;partition de
+         charge al&eacute;atoire entre plusieurs serveurs en arri&egrave;re-plan,
+         via un mandataire inverse. Les images sont envoy&eacute;es &agrave; un des
+         serveurs de l'ensemble "statique", tandis que tout le
+         reste est envoy&eacute; &agrave; un des serveurs de l'ensemble
+         "dynamique".</p>
+          <p>Exemple:</p>
+
+<example><title>Fichier de correspondances pour la r&eacute;&eacute;criture</title>
+<pre>
+##
+##  map.txt -- correspondances pour la r&eacute;&eacute;criture
+##
+
+static   www1|www2|www3|www4
+dynamic  www5|www6
+</pre>
+</example>
+
+<example><title>Directives de configuration</title>
+RewriteMap serveurs rnd:/chemin/vers/fichier/map.txt<br />
+<br />
+RewriteRule ^/(.*\.(png|gif|jpg)) http://${serveurs:static}/$1
+[NC,P,L]<br />
+RewriteRule ^/(.*) http://${serveurs:dynamic}/$1 [P,L]
+</example>
+        </li>
+
+        <li>
+          <strong>Fichier &agrave; acc&egrave;s direct (Hash file)</strong><br />
+         type de correspondance :
+         <code>dbm[=<em>type</em>]</code>, source de la
+         correspondance : chemin du syst&egrave;me de fichiers Unix vers un
+          fichier r&eacute;gulier valide
+
+          <p>Ici, la source de la correspondance est un fichier binaire
+         au format DBM contenant les m&ecirc;mes donn&eacute;es qu'un fichier au
+         format <em>Plein texte</em>, mais selon une repr&eacute;sentation
+         particuli&egrave;re optimis&eacute;e en vue d'une recherche tr&egrave;s rapide.
+         Le <em>type</em> peut &ecirc;tre sdbm, gdbm, ndbm, ou db selon la
+         configuration &agrave; la <a href="../install.html#dbm">compilation
+          </a>. Si <em>type</em> est omis, la valeur retenue
+         sera la valeur par d&eacute;faut d&eacute;finie &agrave; la compilation.</p>
+
+          <p>La cr&eacute;ation du fichier dbm &agrave; partir d'un fichier texte
+         s'effectue &agrave; l'aide de l'utilitaire <a
+          href="../programs/httxt2dbm.html">httxt2dbm</a>.</p>
+
+<example>
+$ httxt2dbm -i fichier-source.txt -o fichier-dbm.map
+</example>
+        </li>
+
+        <li>
+          <strong>Fonction interne</strong><br />
+           type de la correspondance : <code>int</code>,
+          source de la correspondance : fonction interne &agrave; Apache
+
+          <p>Ici, la source de la correspondance est une fonction
+         interne &agrave; Apache. Actuellement, vous ne pouvez pas cr&eacute;er
+         votre propre fonction, mais les fonctions suivantes
+         existent d&eacute;j&agrave; :</p>
+
+          <ul>
+            <li><strong>toupper</strong>:<br />
+             Convertit tous les caract&egrave;res de la cl&eacute; en majuscules.</li>
+
+            <li><strong>tolower</strong>:<br />
+             Convertit tous les caract&egrave;res de la cl&eacute; en minuscules.</li>
+
+            <li><strong>escape</strong>:<br />
+             Traduit les caract&egrave;res sp&eacute;ciaux que contient la cl&eacute; en
+            s&eacute;quences hexad&eacute;cimales.</li>
+
+            <li><strong>unescape</strong>:<br />
+             Reconvertit les s&eacute;quences hexad&eacute;cimales que contient la
+            cl&eacute; en caract&egrave;res sp&eacute;ciaux.</li>
+          </ul>
+        </li>
+
+        <li>
+          <strong>Programme de r&eacute;&eacute;criture externe</strong><br />
+           type de la correspondance : <code>prg</code>,
+          source de la correspondance :
+          chemin du syst&egrave;me de fichiers Unix vers un
+          fichier r&eacute;gulier valide
+
+          <p>Ici, la source n'est pas un fichier de correspondances,
+         mais un programme. Pour le cr&eacute;er, vous pouvez utiliser le
+         langage de votre choix, mais le programme doit &ecirc;tre un
+         ex&eacute;cutable (soit du code objet, soit un script
+         contenant le fameux
+         "<code>#!/chemin/vers/interpr&eacute;teur</code>" au d&eacute;but de sa
+         premi&egrave;re ligne).</p>
+
+         <p>Ce programme est lanc&eacute; une seule fois au d&eacute;marrage du
+        serveur Apache, puis communique avec le moteur de r&eacute;&eacute;criture
+        via ses entr&eacute;e et sortie standards (<code>stdin</code>
+        et <code>stdout</code>). A chaque recherche effectu&eacute;e par la
+        fonction de correspondance, il re&ccedil;oit sur son entr&eacute;e standard
+        la cl&eacute; &agrave; rechercher sous la forme d'une cha&icirc;ne de caract&egrave;res
+        termin&eacute;e par le caract&egrave;re "nouvelle ligne". Il doit ensuite
+        renvoyer sur sa sortie standard la valeur recherch&eacute;e sous
+        la forme d'une cha&icirc;ne de caract&egrave;res termin&eacute;e par le caract&egrave;re
+        "nouvelle ligne", ou la cha&icirc;ne de quatre
+        caract&egrave;res ``<code>NULL</code>'' en cas d'&eacute;chec
+        (<em>c'est &agrave; dire</em>
+        si aucune valeur ne correspond &agrave; la cl&eacute; fournie).</p>
+
+        <p>Les programmes de r&eacute;&eacute;criture externes ne seront pas lanc&eacute;s
+        s'ils ont &eacute;t&eacute; d&eacute;finis dans un contexte o&ugrave; la directive
+        <directive>RewriteEngine</directive> n'a pas &eacute;t&eacute; d&eacute;finie &agrave;
+        <code>on</code>.</p>
+
+        <p>Voici un
+        exemple de ce pourrait &ecirc;tre un programme trivial qui
+        impl&eacute;menterait une correspondance 1:1 (<em>c'est &agrave; dire</em>,
+        cl&eacute; == valeur) :</p>
+
+<example>
+<pre>
+#!/usr/bin/perl
+$| = 1;
+while (&lt;STDIN&gt;) {
+    # ...ins&eacute;rer ici le code de transformation ou de recherche...
+    print $_;
+}
+</pre>
+</example>
+
+          <p>Mais soyez tr&egrave;s prudent :</p>
+
+          <ol>
+            <li>``<em>Ce programme doit &ecirc;tre simple, basique</em>''
+           (MERCI).
+           Si ce programme se bloque, il bloquera aussi Apache
+           lorsqu'il tentera d'utiliser la r&egrave;gle de r&eacute;&eacute;criture
+           correspondante.</li>
+
+            <li>L'utilisation d'entr&eacute;es/sorties avec tampon sur
+           <code>stdout</code> est une erreur courante. Ceci est &agrave;
+           proscrire sous peine de cr&eacute;er une boucle infernale ! Pour
+           &eacute;viter ceci, on utilise (en langage Perl) ``<code>$|=1</code>'' comme dans
+           l'exemple ci-dessus.</li>
+
+            <li>On peut d&eacute;finir la directive <directive
+           module="mod_rewrite">RewriteLock</directive> pour sp&eacute;cifier
+           un fichier verrou que mod_rewrite pourra utiliser pour
+           synchroniser les communications avec le programme de
+           correspondance. Par d&eacute;faut, aucune synchronisation de ce
+           type n'est mise en oeuvre.</li>
+          </ol>
+        </li>
+        <li>
+          <p><strong>Requ&ecirc;te SQL</strong><br />
+           type de correspondance : <code>dbd</code> ou
+          <code>fastdbd</code>,
+           source de la correspondance : une requ&ecirc;te SQL SELECT qui
+          comporte un seul argument et renvoie une seule valeur.</p>
+          <p>Ici, on utilise <module>mod_dbd</module> pour impl&eacute;menter
+         une correspondance pour la r&eacute;&eacute;criture par recherche dans une
+         base de donn&eacute;es SQL. Deux modes sont possibles :
+         <code>fastdbd</code> met en cache les recherches dans la base
+         de donn&eacute;es en interne, alors que <code>dbd</code> ne le fait
+         pas. Ainsi, <code>dbd</code> diminue les performances, mais
+         donnera toujours une r&eacute;ponse actualis&eacute;e, m&ecirc;me si le contenu
+         de la base de donn&eacute;es est mise &agrave; jour, alors que
+         <code>fastdbd</code> est plus performant mais ne relira pas
+         le contenu de la base de donn&eacute;es tant que le serveur ne sera
+         pas red&eacute;marr&eacute;.</p>
+          <p>Si une requ&ecirc;te renvoie plusieurs r&eacute;ponses, une de ces
+         derni&egrave;res sera choisie al&eacute;atoirement.</p>
+<example>
+<title>Example</title>
+RewriteMap ma-requete "fastdbd:SELECT destination FROM rewrite WHERE source = %s"
+</example>
+        </li>
+      </ul>
+      <p>La directive <directive>RewriteMap</directive> peut
+      appara&icirc;tre plusieurs fois. Utilisez une directive
+      <directive>RewriteMap</directive> par fonction de correspondance
+      pour d&eacute;clarer son fichier de correspondance pour la r&eacute;&eacute;criture.
+      Bien que vous ne puissiez pas <strong>d&eacute;clarer</strong> une
+      table de correspondance dans un contexte de r&eacute;pertoire, vous
+      pouvez bien entendu <strong>utiliser</strong> cette table dans un
+      contexte de r&eacute;pertoire. </p>
+
+<note><title>Note</title> En ce qui concerne les fichiers au format DBM
+et texte plat, les cl&eacute;s de recherches sont mises en cache en interne
+jusqu'&agrave; ce que le <code>mtime (date de modification)</code> du fichier
+soit modifi&eacute;, ou que le serveur soit red&eacute;marr&eacute;. Ainsi, certaines
+fonctions de correspondance dans les r&egrave;gles peuvent &ecirc;tre utilis&eacute;es pour
+<strong>chaque</strong> requ&ecirc;te. Cela ne pose pas probl&egrave;me, car la
+recherche externe n'intervient qu'une seule fois !
+</note>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteBase</name>
+<description>D&eacute;finit l'URL de base pour les r&eacute;&eacute;critures au niveau
+r&eacute;pertoire</description>
+<syntax>RewriteBase <em>chemin URL</em></syntax>
+<default>Voir utilisation pour plus d'informations.</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>FileInfo</override>
+
+<usage>
+      <p>La directive <directive>RewriteBase</directive> d&eacute;finit
+      explicitement l'URL de base pour les r&eacute;&eacute;critures au niveau du
+      r&eacute;pertoire. Comme vous le verrez plus loin, la directive
+      <directive module="mod_rewrite">RewriteRule</directive> peut
+      &ecirc;tre utilis&eacute;e dans les fichiers de configuration au niveau du
+      r&eacute;pertoire (<code>.htaccess</code>). Elle agit alors localement,
+      en amputant le r&eacute;pertoire local de son pr&eacute;fixe avant traitement,
+      et en n'appliquant les r&egrave;gles de r&eacute;&eacute;criture que sur ce qui reste
+      de l'URL. Lorsque le traitement est termin&eacute;, le pr&eacute;fixe est
+      automatiquement rajout&eacute; &agrave; l'URL. La valeur par d&eacute;faut est
+      <directive>RewriteBase</directive>
+      <em>chemin r&eacute;pertoire physique</em></p>
+
+      <p>Lorsqu'une substitution intervient pour une nouvelle URL, ce
+      module doit r&eacute;injecter l'URL dans le traitement du serveur. Pour
+      y parvenir, il doit conna&icirc;tre le pr&eacute;fixe de l'URL ou l'URL de
+      base correspondants. Par d&eacute;faut, le pr&eacute;fixe est le chemin du
+      fichier correspondant lui-m&ecirc;me. <strong>Cependant, pour la
+      plupart des sites web, les URLs ne correspondent PAS directement
+      aux chemins des fichiers physiques, cette assertion s'av&egrave;re
+      ainsi souvent fausse !</strong>. C'est pourquoi vous pouvez
+      utiliser la directive <code>RewriteBase</code> pour sp&eacute;cifier
+      le pr&eacute;fixe correct.</p>
+
+<note> Si les URLs de votre serveur web ne correspondent
+<strong>pas</strong> directement aux chemins physiques des fichiers,
+vous devrez utiliser <directive>RewriteBase</directive> dans chaque
+fichier <code>.htaccess</code> o&ugrave; vous voudrez utiliser des
+directives <directive
+module="mod_rewrite">RewriteRule</directive>.
+</note>
+
+        <p> Par exemple, consid&eacute;rons le fichier de configuration de
+       r&eacute;pertoire suivant :</p>
+
+<example>
+<pre>
+#
+#  /abc/def/.htaccess -- fichier de configuration pour le r&eacute;pertoire
+/abc/def
+#  Rappel : /abc/def est le chemin physique de /xyz,
+#  <em>ce qui veut dire</em> que la configuration du serveur comporte
+#  une directive du style 'Alias /xyz /abc/def'.
+#
+
+RewriteEngine On
+
+#  faisons savoir au serveur qu'on nous a atteint via /xyz et non par
+#  le chemin physique /abc/def
+RewriteBase   /xyz
+
+#  maintenant les r&egrave;gles de r&eacute;&eacute;criture
+RewriteRule   ^avant\.html$  apr&egrave;s.html
+</pre>
+</example>
+
+        <p>Dans l'exemple pr&eacute;c&eacute;dent, une requ&ecirc;te pour
+       <code>/xyz/avant.html</code> sera correctement r&eacute;&eacute;crite sous
+       sous sa forme chemin physique
+       <code>/abc/def/apr&egrave;s.html</code>.</p>
+
+<note><title>Pour les hackers d'Apache</title>
+<p>La liste suivante fournit des informations d&eacute;taill&eacute;es &agrave; propos des
+&eacute;tapes du traitement interne :</p>
+<pre>
+Requ&ecirc;te :
+  /xyz/avant.html
+
+Traitement interne :
+  /xyz/avant.html     -&gt; /abc/def/avant.html  (Alias au niveau serveur)
+  /abc/def/avant.html -&gt; /abc/def/apr&egrave;s.html  (RewriteRule au niveau r&eacute;pertoire)
+  /abc/def/apr&egrave;s.html -&gt; /xyz/apr&egrave;s.html      (RewriteBase au niveau r&eacute;pertoire)
+  /xyz/apr&egrave;s.html     -&gt; /abc/def/apr&egrave;s.html  (Alias au niveau serveur)
+
+R&eacute;sultat :
+  /abc/def/apr&egrave;s.html
+
+</pre>
+              <p>Tout ceci para&icirc;t tr&egrave;s compliqu&eacute;, mais correspond
+             r&eacute;ellement au traitement interne d'Apache. Comme la
+             r&eacute;&eacute;criture au niveau du r&eacute;pertoire intervient plus tard
+             au cours du traitement, la requ&ecirc;te de r&eacute;&eacute;criture doit &ecirc;tre
+             r&eacute;inject&eacute;e dans le noyau d'Apache, comme s'il s'agissait
+             d'une nouvelle requ&ecirc;te (Voir les <a
+             href="../rewrite/rewrite_tech.html">d&eacute;tails techniques &agrave;
+             propos de mod_rewrite</a>). La surcharge
+             correspondante n'est pas aussi importante qu'il n'y
+             para&icirc;t, car la r&eacute;injection est enti&egrave;rement prise en charge
+             en interne par Apache (comme c'est d'ailleurs le cas pour
+             de nombreuses autres op&eacute;rations effectu&eacute;es &agrave; l'int&eacute;rieur
+             d'Apache).</p>
+</note>
+
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteCond</name>
+<description>D&eacute;finit une condition qui devra &ecirc;tre satisfaite pour que
+la r&eacute;&eacute;criture soit effectu&eacute;e
+</description>
+<syntax> RewriteCond
+      <em>cha&icirc;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>
+
+<usage>
+      <p>La directive <directive>RewriteCond</directive> d&eacute;finit une
+      condition d'application d'une certaine r&egrave;gle. Une ou plusieurs
+      directives <directive>RewriteCond</directive> peuvent pr&eacute;c&eacute;der
+      une directive
+      <directive module="mod_rewrite">RewriteRule</directive>. La r&egrave;gle
+      qui suit n'est appliqu&eacute;e que si l'&eacute;tat actuel de l'URI
+      correspond &agrave; son mod&egrave;le, <strong
+      >et</strong> si les conditions sont satisfaites.</p>
+
+      <p><em>cha&icirc;ne de test</em> est une cha&icirc;ne de caract&egrave;res qui peut
+      contenir, en plus du texte plat, les constructions &eacute;tendues
+      suivantes :</p>
+
+      <ul>
+        <li>
+          <strong>r&eacute;f&eacute;rences arri&egrave;res de r&egrave;gle de r&eacute;&eacute;criture</strong> :
+         ce sont des r&eacute;f&eacute;rences arri&egrave;res de la forme
+         <strong><code>$N</code></strong> (0 &lt;= N &lt;= 9), qui
+         donnent acc&egrave;s aux parties group&eacute;es (entre parenth&egrave;ses) du
+         mod&egrave;le tir&eacute; de la <code>RewriteRule</code> assujettie au
+         jeu de conditions concern&eacute;.
+        </li>
+        <li>
+          <strong>R&eacute;f&eacute;rences arri&egrave;res de condition de r&eacute;&eacute;criture
+         </strong> : ce sont des r&eacute;f&eacute;rences arri&egrave;res de la forme
+         <strong><code>%N</code></strong> (1 &lt;= N &lt;= 9), qui
+         donnent acc&egrave;s aux parties group&eacute;es (l&agrave; aussi entre
+         parenth&egrave;ses) du mod&egrave;le de la derni&egrave;re condition satisfaite
+         du jeu de conditions concern&eacute;.
+        </li>
+        <li>
+          <strong>extensions de table de r&eacute;&eacute;criture</strong> :
+         ce sont des extensions de la forme <strong><code
+         >${nomTable:cl&eacute;|d&eacute;faut}</code></strong>. Voir
+         <a href="#mapfunc">la documentation de
+          RewriteMap</a> pour plus de d&eacute;tails.
+        </li>
+        <li>
+          <strong>Variables du serveur</strong> :
+         ce sont des variables de la forme
+         <strong><code>%{</code> <em>NOM_DE_VARIABLE</em>
+            <code>}</code></strong>
+            <strong><code>%{</code> <em>NOM_DE_VARIABLE</em>
+            <code>}</code></strong> o&ugrave; <em>NOM_DE_VARIABLE</em>
+           peut &ecirc;tre une cha&icirc;ne de caract&egrave;res faisant partie de la
+           liste suivante :
+
+          <table>
+          <columnspec><column width=".3"/><column width=".3"/>
+           <column width=".3"/></columnspec>
+            <tr>
+              <th>En-t&ecirc;tes HTTP :</th> <th>connexion &amp; requ&ecirc;te:</th> <th></th>
+           </tr>
+
+            <tr>
+             <td>
+                HTTP_USER_AGENT<br />
+                 HTTP_REFERER<br />
+                 HTTP_COOKIE<br />
+                 HTTP_FORWARDED<br />
+                 HTTP_HOST<br />
+                 HTTP_PROXY_CONNECTION<br />
+                 HTTP_ACCEPT<br />
+              </td>
+
+              <td>
+                 REMOTE_ADDR<br />
+                 REMOTE_HOST<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>
+
+            <tr>
+              <th>variables internes au serveur :</th> <th>date et heure :</th> <th>sp&eacute;ciaux :</th>
+           </tr>
+
+            <tr>
+             <td>
+                DOCUMENT_ROOT<br />
+                 SERVER_ADMIN<br />
+                 SERVER_NAME<br />
+                 SERVER_ADDR<br />
+                 SERVER_PORT<br />
+                 SERVER_PROTOCOL<br />
+                 SERVER_SOFTWARE<br />
+              </td>
+
+              <td>
+                 TIME_YEAR<br />
+                 TIME_MON<br />
+                 TIME_DAY<br />
+                 TIME_HOUR<br />
+                 TIME_MIN<br />
+                 TIME_SEC<br />
+                 TIME_WDAY<br />
+                 TIME<br />
+              </td>
+
+              <td>
+                 API_VERSION<br />
+                 THE_REQUEST<br />
+                 REQUEST_URI<br />
+                 REQUEST_FILENAME<br />
+                 IS_SUBREQ<br />
+                 HTTPS<br />
+              </td>
+            </tr>
+          </table>
+
+                <p>Toutes ces variables correspondent nom pour nom aux
+               en-t&ecirc;tes MIME HTTP, aux variables C du serveur Apache
+               ou aux champs <code>struct tm</code> du syst&egrave;me Unix.
+               La plupart sont document&eacute;es dans une autre partie du
+               manuel ou dans la sp&eacute;cification CGI. Vous trouverez
+               dans ce qui suit quelques variables sp&eacute;cifiques
+               &agrave; mod_rewrite.</p>
+       <note>
+                <dl>
+                  <dt><code>IS_SUBREQ</code></dt>
+
+                  <dd>Contiendra le texte "true" si la requ&ecirc;te en cours
+                 de traitement est une sous-requ&ecirc;te, "false" dans le
+                 cas contraire. Une sous-requ&ecirc;te est g&eacute;n&eacute;r&eacute;e quand un
+                 module a besoin de se r&eacute;f&eacute;rer &agrave; des fichiers ou URIs
+                 addidionnels pour pouvoir mener &agrave; bien sa t&acirc;che.</dd>
+
+                  <dt><code>API_VERSION</code></dt>
+
+                  <dd>Il s'agit de la version de l'API des modules
+                 Apache (l'interface interne entre le serveur et les
+                 modules) dans la construction actuelle de httpd,
+                 telle qu'elle est d&eacute;finie dans include/ap_mmn.h. La
+                 version de l'API des modules correspond &agrave; la version
+                 d'Apache utilis&eacute;e (pour Apache 1.3.14, par exemple,
+                 la version de l'API sera 19990320:10), mais cette
+                 information int&eacute;resse principalement les
+                 d&eacute;veloppeurs de modules.</dd>
+
+                  <dt><code>THE_REQUEST</code></dt>
+
+                  <dd>La ligne de requ&ecirc;te HTTP compl&egrave;te envoy&eacute;e par le
+                 navigateur au serveur (par exemple, "<code>GET
+                  /index.html HTTP/1.1</code>"), &agrave; l'exclusion de tout
+                 en-t&ecirc;te ajout&eacute; par le navigateur.</dd>
+
+                  <dt><code>REQUEST_URI</code></dt>
+
+                  <dd>La ressource demand&eacute;e dans la ligne de requ&ecirc;te
+                 HTTP (correspondrait, dans l'exemple pr&eacute;c&eacute;dent, &agrave;
+                 "/index.html").</dd>
+
+                  <dt><code>REQUEST_FILENAME</code></dt>
+
+                  <dd>Le chemin complet local au syst&egrave;me de fichiers
+                 du fichier ou du script correspondant
+                 &agrave; la requ&ecirc;te.</dd>
+
+                  <dt><code>HTTPS</code></dt>
+
+                  <dd>Contiendra le texte "on" si la connexion
+                 utilise SSL/TLS, "off" dans le cas contraire
+                 (L'utilisation de cette variable est pertinente,
+                 ind&eacute;pendamment du fait que <module>mod_ssl</module>
+                 soit charg&eacute; ou non).</dd>
+
+                </dl>
+</note>
+        </li>
+      </ul>
+
+      <p>Autres points &agrave; conna&icirc;tre :</p>
+
+      <ol>
+        <li>
+       <p>Les variables SCRIPT_FILENAME et REQUEST_FILENAME ont la
+       m&ecirc;me valeur - celle du champ <code>filename</code> de la
+       structure interne du serveur Apache <code>request_rec</code>.
+       Le premier nom est bien connu en tant que variable CGI,
+       alors que le second est &eacute;quivalent &agrave; REQUEST_URI (qui contient
+       la valeur du champ <code>uri</code> de la structure
+       <code>request_rec</code>).</p>
+       <p>Si une substitution intervient et si la r&eacute;&eacute;criture continue,
+       les valeurs des deux variables seront mises &agrave; jour en
+       cons&eacute;quence.</p>
+       <p>Dans un contexte de niveau serveur (<em>c'est &agrave; dire</em>
+       avant que la requ&ecirc;te soit mise en correspondance avec le syst&egrave;me
+       de fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas
+       contenir le chemin complet dans le syst&egrave;me de fichier local car
+       ce dernier n'est pas encore connu &agrave; ce niveau du traitement.
+       Dans ce cas, les deux variables contiendront initialement la
+       valeur de REQUEST_URI. Pour avoir acc&egrave;s au chemin complet de la
+       requ&ecirc;te dans le syst&egrave;me de fichiers local dans un contexte de
+       niveau serveur, utilisez une r&eacute;f&eacute;rence avant &agrave; base d'URL
+       <code>%{LA-U:REQUEST_FILENAME}</code> pour d&eacute;terminer la valeur
+       finale de REQUEST_FILENAME.</p></li>
+
+        <li>On peut &eacute;galement utiliser <code>%{ENV:variable}</code>, o&ugrave;
+       <em>variable</em> peut &ecirc;tre remplac&eacute; par toute variable
+       d'environnement. Ces variables sont recherch&eacute;es dans les
+       structures internes d'Apache, et (si elles n'y figurent pas)
+       via <code>getenv()</code> depuis le processus du serveur
+       Apache.</li>
+
+        <li>Que <module>mod_ssl</module> soit charg&eacute; ou non, on peut
+       utiliser <code>%{SSL:variable}</code>, o&ugrave; <em>variable</em>
+       peut &ecirc;tre remplac&eacute; par le nom d'une
+       <a href="mod_ssl.html#envvars">variable
+       d'environnement SSL</a>, mais la valeur produite sera toujours
+       une cha&icirc;ne de caract&egrave;res vide si <module>mod_ssl</module> n'est
+       pas charg&eacute;. Exemple :
+       <code>%{SSL:SSL_CIPHER_USEKEYSIZE}</code> peut correspondre
+       &agrave; <code>128</code>.</li>
+
+        <li>Pour obtenir la valeur d'un en-t&ecirc;te contenu dans une requ&ecirc;te
+       HTTP, on peut toujours utiliser <code>%{HTTP:header}</code>,
+       o&ugrave; <em>header</em> peut &ecirc;tre remplac&eacute; par tout nom d'en-t&ecirc;te
+       MIME HTTP. Exemple : <code>%{HTTP:Proxy-Connection}</code> est
+       la valeur de l'en-t&ecirc;te HTTP ``<code>Proxy-Connection:</code>''.
+        <p>Si une condition contient un en-t&ecirc;te HTTP, il est ajout&eacute; &agrave;
+       l'en-t&ecirc;te Vary de la r&eacute;ponse dans le cas o&ugrave; la condition est
+       &eacute;valu&eacute;e &agrave; true pour la requ&ecirc;te. Dans le cas contraire, il n'est
+       <strong>pas</strong> ajout&eacute;. L'ajout de l'en-t&ecirc;te HTTP &agrave;
+       l'en-t&ecirc;te Vary de la r&eacute;ponse s'av&egrave;re n&eacute;cessaire pour une mise
+       en cache correcte.</p>
+        <p>Il faut garder &agrave; l'esprit que les conditions suivent une
+       logique de court-circuit en cas de pr&eacute;sence du drapeau
+       '<strong><code>ornext|OR</code></strong>', si bien que
+       certaines d'entre elles sont susceptibles de ne pas &ecirc;tre
+       &eacute;valu&eacute;es du tout.</p></li>
+
+        <li>On peut utiliser <code>%{LA-U:variable}</code> pour les
+       recherches en avant qui effectuent une sous-requ&ecirc;te interne
+       (bas&eacute;e sur l'URL), pour d&eacute;terminer la valeur finale de
+       <em>variable</em>. Cela peut servir &agrave; acc&eacute;der &agrave; une variable
+       (n&eacute;cessaire pour une r&eacute;&eacute;criture) qui n'est pas disponible dans
+       la situation pr&eacute;sente, mais le sera dans une phase ult&eacute;rieure.
+       <p>Par exemple, pour effectuer une r&eacute;&eacute;criture qui tient compte
+       de la variable <code>REMOTE_USER</code> dans un contexte
+       niveau serveur (fichier <code>httpd.conf</code>), vous devez
+       utiliser <code>%{LA-U:REMOTE_USER}</code> ; cette variable est
+       d&eacute;finie au cours des phases d'autorisation, qui interviennent
+       <em>apr&egrave;s</em> la phase de traduction de l'URL (pendant
+       laquelle agit mod_rewrite).</p>
+       <p>Par contre, comme mod_rewrite impl&eacute;mente son contexte
+       niveau r&eacute;pertoire (fichier <code>.htaccess</code>) via la
+       phase Fixup de l'API, et comme les phases d'autorisation
+       interviennent <em>avant</em> cette phase, vous pouvez vous contenter
+       d'utiliser <code>%{REMOTE_USER}</code>
+       dans le contexte niveau serveur.</p></li>
+
+        <li>On peut utiliser <code>%{LA-F:variable}</code> pour
+       effectuer une sous-requ&ecirc;te interne (bas&eacute;e sur un nom de
+       fichier), pour d&eacute;terminer la valeur finale de
+       <em>variable</em>. La plupart du temps, elle est identique &agrave;
+       LA-U vue pr&eacute;c&eacute;demment.</li>
+      </ol>
+
+      <p><em>expression de comparaison</em> est une expression
+      rationnelle qui est appliqu&eacute;e &agrave; l'instance actuelle de
+      <em>cha&icirc;ne de test</em>. <em>cha&icirc;ne de test</em> est d'abord
+      &eacute;valu&eacute;e, puis compar&eacute;e &agrave;
+      l'<em>expression de comparaison</em>.</p>
+
+      <p><strong>A savoir :</strong>
+      <em>expression de comparaison</em> est une
+      <em>expression rationnelle compatible perl</em> avec
+      quelques extensions :</p>
+
+      <ol>
+        <li>Vous pouvez pr&eacute;fixer l'expression avec un caract&egrave;re
+       '<code>!</code>' (point d'exclamation) pour indiquer une
+       expression de <strong>non</strong>-correspondance.</li>
+
+        <li>Il existe certaines variantes sp&eacute;ciales
+       d'<em>expressions de comparaison</em>. A la place d'une
+       expression rationnelle, vous pouvez utiliser :
+
+          <ul>
+            <li>'<strong>&lt;expression</strong>' (inf&eacute;rieur au sens
+           lexicographique)<br />
+           Traite l'<em>expression</em> comme une cha&icirc;ne de
+           caract&egrave;res et la compare lexicographiquement &agrave;
+           <em>cha&icirc;ne de test</em>. La condition est satisfaite si
+           <em>cha&icirc;ne de test</em> est inf&eacute;rieure au sens
+           lexicographique &agrave; l'<em>expression</em>.</li>
+
+            <li>'<strong>&gt;expression</strong>' (sup&eacute;rieur au sens
+           lexicographique)<br />
+           Traite l'<em>expression</em> comme une cha&icirc;ne de
+           caract&egrave;res et la compare lexicographiquement &agrave;
+           <em>cha&icirc;ne de test</em>. La condition est satisfaite si
+           <em>cha&icirc;ne de test</em> est sup&eacute;rieure au sens
+           lexicographique &agrave; l'<em>expression</em>.</li>
+
+            <li>'<strong>=expression</strong>' (&eacute;gal au sens
+           lexicographique)<br />
+           Traite l'<em>expression</em> comme une cha&icirc;ne de
+           caract&egrave;res et la compare lexicographiquement &agrave;
+           <em>cha&icirc;ne de test</em>. La condition est satisfaite si
+           <em>cha&icirc;ne de test</em> est &eacute;gale au sens
+           lexicographique &agrave; l'<em>expression</em> (les deux cha&icirc;nes
+           sont exactement identiques, caract&egrave;re pour caract&egrave;re). Si
+           <em>expression</em> est <code>""</code> (deux guillemets),
+           <em>cha&icirc;ne de test</em> est compar&eacute;e &agrave; la cha&icirc;ne vide.</li>
+
+            <li>'<strong>-d</strong>' (est un r&eacute;pertoire -
+           <strong>d</strong>irectory)<br />
+           Traite <em>cha&icirc;ne de test</em> comme un chemin et v&eacute;rifie
+           s'il existe ou pas, et s'il s'agit d'un r&eacute;pertoire.</li>
+
+            <li>'<strong>-f</strong>' (est un
+           <strong>f</strong>ichier r&eacute;gulier)<br />
+           Traite <em>cha&icirc;ne de test</em> comme un chemin et v&eacute;rifie
+           s'il existe ou pas, et s'il s'agit d'un fichier r&eacute;gulier.</li>
+
+            <li>'<strong>-s</strong>' (est un fichier r&eacute;gulier d'une
+           certaine taille - <strong>s</strong>ize)<br />
+           Traite <em>cha&icirc;ne de test</em> comme un chemin et v&eacute;rifie
+           s'il existe ou pas, et s'il s'agit d'un fichier r&eacute;gulier
+           dont la taille est sup&eacute;rieure &agrave; z&eacute;ro.</li>
+
+            <li>'<strong>-l</strong>' (est un
+           <strong>l</strong>ien symbolique)<br />
+           Traite <em>cha&icirc;ne de test</em> comme un chemin et v&eacute;rifie
+           s'il existe ou pas, et s'il s'agit d'un lien
+           symbolique.</li>
+
+            <li>'<strong>-x</strong>' (a le droit
+           d'e<strong>x</strong>&eacute;cution)<br />
+           Traite <em>cha&icirc;ne de test</em> comme un chemin et v&eacute;rifie
+           s'il existe ou pas, et a le droit d'ex&eacute;cution. Ce droit est
+           d&eacute;termin&eacute; en accord avec le syst&egrave;me d'exploitation
+           sous-jacent.</li>
+
+            <li>'<strong>-F</strong>' (test de l'existence d'un fichier
+           via une sous-requ&ecirc;te)<br />
+           V&eacute;rifie si <em>cha&icirc;ne de test</em> est un fichier valide,
+           accessible &agrave; travers tous les contr&ocirc;les d'acc&egrave;s du serveur
+           actuellement configur&eacute;s pour ce chemin. C'est une
+           sous-requ&ecirc;te interne qui effectue cette v&eacute;rification - &agrave;
+           utiliser avec pr&eacute;cautions car les performances du serveur
+           peuvent s'en trouver affect&eacute;es !</li>
+
+            <li>'<strong>-U</strong>' (test de l'existence d'une
+           <strong>U</strong>RL via une sous-requ&ecirc;te)<br />
+           V&eacute;rifie si <em>cha&icirc;ne de test</em> est une URL valide,
+           accessible &agrave; travers tous les contr&ocirc;les d'acc&egrave;s du serveur
+           actuellement configur&eacute;s pour ce chemin. C'est une
+           sous-requ&ecirc;te interne qui effectue cette v&eacute;rification - &agrave;
+           utiliser avec pr&eacute;cautions car les performances du serveur
+           peuvent s'en trouver affect&eacute;es !</li>
+          </ul>
+
+<note><title>Note :</title>
+              Tous ces tests peuvent aussi &ecirc;tre pr&eacute;fix&eacute;s par un point
+             d'exclamation ('!') pour inverser leur signification.
+</note>
+        </li>
+
+       <li>Vous pouvez aussi d&eacute;finir certains drapeaux pour
+       l'<em>expression de comparaison</em> en ajoutant ces
+       <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
+       comme troisi&egrave;me argument de la directive
+       <code>RewriteCond</code>, o&ugrave; <em>drapeaux</em> est un
+       sous-ensemble s&eacute;par&eacute; par des virgules des drapeaux suivants :
+
+      <ul>
+        <li>'<strong><code>nocase|NC</code></strong>'
+       (<strong>n</strong>o <strong>c</strong>ase)<br />
+       Rend le test insensible &agrave; la casse - il n'est pas fait de
+       distinction entre majuscules et minuscules, &agrave; la fois dans le
+       d&eacute;veloppement de <em>cha&icirc;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&icirc;ne de test</em>
+       et <em>expression de comparaison</em>. Il ne l'est pas pour les
+       v&eacute;rification par sous-requ&ecirc;tes ou sur le syst&egrave;me de
+       fichiers.</li>
+
+        <li>
+          '<strong><code>ornext|OR</code></strong>'
+         (<strong>ou</strong> condition suivante)<br />
+         Permet de cha&icirc;ner les conditions de r&egrave;gles avec un OU au
+         lieu du AND implicite. Exemple typique :
+
+<example>
+<pre>
+RewriteCond %{REMOTE_HOST}  ^hote1.*  [OR]
+RewriteCond %{REMOTE_HOST}  ^hote2.*  [OR]
+RewriteCond %{REMOTE_HOST}  ^hote3.*
+RewriteRule ...r&egrave;gles concernant tous ces h&ocirc;tes...
+</pre>
+</example>
+
+          Sans ce drapeau, les paires
+         condition/r&egrave;gle devraient &ecirc;tre &eacute;crites trois fois.
+        </li>
+
+        <li>'<strong><code>novary|NV</code></strong>'
+       (<strong>n</strong>o <strong>v</strong>ary)<br />
+       Si la condition contient un en-t&ecirc;te HTTP, ce drapeau emp&ecirc;che
+       ce dernier d'&ecirc;tre ajout&eacute; &agrave; l'en-t&ecirc;te Vary de la r&eacute;ponse. <br />
+       L'utilisation de ce drapeau peut provoquer une mise en cache
+       incorrecte de la r&eacute;ponse, si la repr&eacute;sentation de cette r&eacute;ponse
+       varie avec la valeur de l'en-t&ecirc;te consid&eacute;r&eacute;. Ce drapeau ne
+       devrait donc &ecirc;tre utilis&eacute; que si l'on ma&icirc;trise parfaitement le
+       fonctionnement de l'en-t&ecirc;te Vary.
+        </li>
+      </ul>
+      </li>
+     </ol>
+
+      <p><strong>Exemple :</strong></p>
+
+       <p>Pour r&eacute;&eacute;crire la page d'accueil d'un site en fonction de
+       l'en-t&ecirc;te ``<code>User-Agent:</code>'' de la requ&ecirc;te, vous
+       pouvez utiliser ce qui suit : </p>
+
+<example>
+<pre>
+RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
+RewriteRule  ^/$                 /homepage.max.html  [L]
+
+RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
+RewriteRule  ^/$                 /homepage.min.html  [L]
+
+RewriteRule  ^/$                 /homepage.std.html  [L]
+</pre>
+</example>
+
+        <p>Explications : si vous utilisez un navigateur
+       (Netscape Navigator, Mozilla etc) qui s'identifie comme
+       'Mozilla', vous acc&egrave;derez &agrave; la page d'accueil max (qui
+       peut contenir des frames, ou d'autres ressources
+       particuli&egrave;res).
+       Si vous utilisez le navigateur Lynx (qui est un navigateur
+       en mode texte), vous acc&egrave;derez &agrave; une page d'accueil min
+       (qui peut &ecirc;tre une version con&ccedil;ue pour une navigation simple
+       bas&eacute;e sur le texte).
+       Si aucune de ces conditions n'est satisfaite (vous utilisez tout
+       autre navigateur, ou votre navigateur s'identifie de mani&egrave;re non
+       standard), vous acc&egrave;derez &agrave; la page d'accueil std
+       (standard).</p>
+
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RewriteRule</name>
+<description>D&eacute;finit les r&egrave;gles pour le moteur de r&eacute;&eacute;criture</description>
+<syntax>RewriteRule
+      <em>Mod&egrave;le</em> <em>Substitution</em> [<em>drapeaux</em>]</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context><context>.htaccess</context></contextlist>
+<override>FileInfo</override>
+
+<usage>
+      <p>La directive <directive>RewriteRule</directive> est le
+      v&eacute;ritable cheval de trait de la r&eacute;&eacute;criture. La directive peut
+      appara&icirc;tre plusieurs fois, chaque instance d&eacute;finissant une
+      r&egrave;gle de r&eacute;&eacute;criture particuli&egrave;re. L'ordre dans lequel ces r&egrave;gles
+      sont d&eacute;finies est important - il s'agit de l'ordre dans lequel
+      les r&egrave;gles seront appliqu&eacute;es au cours du processus de
+      r&eacute;&eacute;criture.</p>
+
+      <p><a id="patterns" name="patterns"><em>Mod&egrave;le</em></a> est une
+      <a id="regexp" name="regexp">expression rationnelle</a>
+      compatible perl. Dans la premi&egrave;re r&egrave;gle de r&eacute;&eacute;criture,
+      l'expression est compar&eacute;e au (%-encoded)
+      <a href="./directive-dict.html#Syntax">chemin de l'URL</a> de la
+      requ&ecirc;te ; les expressions suivantes sont compar&eacute;es &agrave; la sortie de
+      la derni&egrave;re r&egrave;gle de r&eacute;&eacute;criture qui a &eacute;t&eacute; appliqu&eacute;e.</p>
+
+<note><title>Qu'est-ce qui est compar&eacute; ?</title>
+      <p>Le <em>Mod&egrave;le</em> est d'abord compar&eacute; &agrave; la partie
+      de l'URL apr&egrave;s le nom d'h&ocirc;te et le port, et avant la cha&icirc;ne de
+      requ&ecirc;te. Si vous souhaitez faire une comparaison sur le nom
+      d'h&ocirc;te, le port, ou la cha&icirc;ne de requ&ecirc;te, utilisez une
+      directive <directive module="mod_rewrite">RewriteCond</directive>
+      comportant les variables
+      <code>%{HTTP_HOST}</code>, <code>%{SERVER_PORT}</code>, ou
+      <code>%{QUERY_STRING}</code>.</p>
+</note>
+
+       <p>Pour quelques conseils &agrave; propos des <glossary
+       ref="regex">expressions rationnelles</glossary>, voir le
+       document <a
+       href="../rewrite/rewrite_intro.html#regex">Introduction &agrave;
+       mod_rewrite</a>.</p>
+
+      <p>Dans mod_rewrite, on peut aussi utiliser le caract&egrave;re NON
+      ('<code>!</code>') comme pr&eacute;fixe de mod&egrave;le. Ceci vous permet
+      d'inverser la signification d'un mod&egrave;le, soit pour dire
+      ``<em>si l'URL consid&eacute;r&eacute;e ne correspond <strong>PAS</strong> &agrave;
+      ce mod&egrave;le</em>''. Le caract&egrave;re NON peut donc &ecirc;tre utilis&eacute; &agrave;
+      titre exceptionnel, lorsqu'il est plus simple d'effectuer une
+      comparaison avec le mod&egrave;le invers&eacute;, ou dans la derni&egrave;re r&egrave;gle
+      par d&eacute;faut.</p>
+
+<note><title>Note</title>
+Si vous utilisez le caract&egrave;re NON pour inverser la signification d'un
+mod&egrave;le, vous ne pouvez pas inclure de parties g&eacute;n&eacute;riques group&eacute;es dans
+le mod&egrave;le. Ceci est d&ucirc; au fait que, lorsque le mod&egrave;le ne correspond
+pas (autrement dit, sa n&eacute;gation correspond), les groupes sont vides.
+Ainsi, si vous utilisez des mod&egrave;les invers&eacute;s, vous ne pouvez
+pas vous r&eacute;f&eacute;rer aux groupes par <code>$N</code> dans la cha&icirc;ne de
+substitution !
+</note>
+
+      <p>Dans une r&egrave;gle de r&eacute;&eacute;criture,
+      <a id="rhs" name="rhs"><em>Substitution</em></a> est la cha&icirc;ne
+      de caract&egrave;res qui remplace le chemin de l'URL original qui
+      correspondait au <em>Mod&egrave;le</em>. <em>Substitution</em> peut
+      &ecirc;tre :</p>
+
+      <dl>
+
+        <dt>un chemin du syst&egrave;me de fichiers</dt>
+
+        <dd>Il indique alors la localisation dans le syst&egrave;me de
+       fichiers de la ressource qui doit &ecirc;tre envoy&eacute;e au client.</dd>
+
+        <dt>chemin d'URL</dt>
+
+        <dd>Un chemin relatif &agrave; la valeur de <directive
+        module="core">DocumentRoot</directive> vers la ressource qui
+       doit &ecirc;tre servie. Notez que <module>mod_rewrite</module>
+       essaie de deviner si vous avez sp&eacute;cifi&eacute; un chemin du syst&egrave;me
+       de fichiers ou un chemin d'URL en v&eacute;rifiant si la premi&egrave;re
+       partie du chemin existe &agrave; la racine du syst&egrave;me de fichiers.
+       Par exemple, si vous avez sp&eacute;cifi&eacute; comme cha&icirc;ne de
+       <em>Substitution</em> <code>/www/file.html</code>, cette
+       derni&egrave;re sera trait&eacute;e comme un chemin d'URL <em>&agrave; moins</em>
+       qu'un r&eacute;pertoire nomm&eacute; <code>www</code> n'existe &agrave; la racine
+       de votre syst&egrave;me de fichiers, auquel cas la cha&icirc;ne de
+       substitution sera trait&eacute;e comme un chemin du syst&egrave;me de
+       fichiers. Si vous d&eacute;sirez que d'autres directives de
+       correspondance d'URL (comme la directive <directive
+        module="mod_alias">Alias</directive>) soient appliqu&eacute;es au
+       chemin d'URL r&eacute;sultant, utilisez le drapeau <code>[PT]</code>
+       comme d&eacute;crit ci-dessous.</dd>
+
+        <dt>URL absolue</dt>
+
+        <dd>Si une URL absolue est sp&eacute;cifi&eacute;e,
+       <module>mod_rewrite</module> v&eacute;rifie si le nom d'h&ocirc;te
+       correspond &agrave; celui de l'h&ocirc;te local. Si c'est le cas, le
+       protocole et le nom d'h&ocirc;te sont supprim&eacute;s, et ce qui reste est
+       trait&eacute; comme un chemin d'URL. Dans le cas contraire, une
+       redirection externe vers l'URL indiqu&eacute;e est effectu&eacute;e. Pour
+       forcer une redirection externe vers l'h&ocirc;te local, voir le
+       drapeau <code>[R]</code> ci-dessous.</dd>
+
+        <dt><code>-</code> (tiret)</dt>
+
+        <dd>Un tiret indique qu'aucune substitution ne doit &ecirc;tre
+       effectu&eacute;e (le chemin consid&eacute;r&eacute; est transmis sans changement).
+       Ceci est utile quand un drapeau doit &ecirc;tre appliqu&eacute; sans
+       modifier le chemin (voir ci-dessous).</dd>
+
+      </dl>
+
+      <p>En plus du texte, la cha&icirc;ne <em>Substition</em> peut
+      comporter :</p>
+
+      <ol>
+        <li>des r&eacute;f&eacute;rences arri&egrave;res (<code>$N</code>) vers le mod&egrave;le
+       d'une directive RewriteRule</li>
+
+        <li>des r&eacute;f&eacute;rences arri&egrave;res (<code>%N</code>) vers le dernier
+       mod&egrave;le d'une directive RewriteCond qui correspondait</li>
+
+        <li>des variables du serveur comme dans les cha&icirc;nes de test de
+       condition d'une r&egrave;gle (<code>%{VARNAME}</code>)</li>
+
+        <li>des appels de
+       <a href="#mapfunc">fonctions de comparaison</a>
+       (<code>${nom correspondance:cl&eacute;|d&eacute;faut}</code>)</li>
+      </ol>
+
+      <p>Les r&eacute;f&eacute;rences arri&egrave;res sont des identificateurs de la forme
+      <code>$</code><strong>N</strong> (<strong>N</strong>=0..9), qui
+      seront remplac&eacute;s par le contenu du <strong>N</strong>&egrave;me groupe
+      du <em>Mod&egrave;le</em> qui correspondait. Les variables du serveur
+      sont les m&ecirc;mes que dans la <em>Cha&icirc;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&eacute;crites. Ces trois types de
+      variables sont &eacute;valu&eacute;es dans l'ordre ci-dessus.</p>
+
+      <p>Comme mentionn&eacute; pr&eacute;c&eacute;demment, toutes les r&egrave;gles de
+      r&eacute;&eacute;criture sont appliqu&eacute;es &agrave; la cha&icirc;ne de <em>Substitution</em>
+      (selon l'ordre dans lequel elles sont d&eacute;finies dans le fichier
+      de configuration). L'URL est <strong>int&eacute;gralement
+      remplac&eacute;e</strong> par la cha&icirc;ne de <em>Substitution</em> et le
+      processus de r&eacute;&eacute;criture se poursuit jusqu'&agrave; ce que toutes les
+      r&egrave;gles aient &eacute;t&eacute; appliqu&eacute;es, ou qu'il soit explicitement stopp&eacute;
+      par un drapeau <code><strong>L</strong></code>.</p>
+
+     <note><title>Modifier la cha&icirc;ne de requ&ecirc;te</title>
+      <p>Par d&eacute;faut, la cha&icirc;ne de requ&ecirc;te est transmise sans
+      modification. Vous pouvez cependant cr&eacute;er dans la cha&icirc;ne de
+      substitution des URLs dont une partie constitue une cha&icirc;ne de
+      requ&ecirc;te. Pour cela, ajoutez simplement un point d'interrogation
+      dans la cha&icirc;ne de substitution pour indiquer que le texte qui
+      suit doit &ecirc;tre r&eacute;inject&eacute; dans la cha&icirc;ne de requ&ecirc;te. Pour
+      supprimer une cha&icirc;ne de requ&ecirc;te, terminez simplement la cha&icirc;ne de
+      substitution par un point d'interrogation. Pour combiner les
+      nouvelles cha&icirc;nes de requ&ecirc;te avec les anciennes, utilisez le
+      drapeau <code>[QSA]</code>.</p>
+     </note>
+
+
+      <p>En outre, vous pouvez sp&eacute;cifier des <a name="rewriteflags"
+      id="rewriteflags">actions</a> sp&eacute;ciales &agrave; effectuer en ajoutant
+      des
+      <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
+      comme troisi&egrave;me argument de la directive
+      <code>RewriteRule</code>. S&eacute;par&eacute;s par des virgules au sein d'une
+      liste encadr&eacute;e par des crochets, les <em>drapeaux</em> peuvent
+      &ecirc;tre choisis parmi les suivants : </p>
+
+      <dl>
+        <dt>'<code>B</code>' (r&eacute;f&eacute;rences arri&egrave;re &eacute;chapp&eacute;es)</dt>
+        <dd><p>Les URLs ne doivent pas &ecirc;tre &eacute;chapp&eacute;es pour pouvoir &ecirc;tre
+       compar&eacute;es par Apache, si bien que les r&eacute;f&eacute;rences arri&egrave;res
+       renverront une valeur non &eacute;chapp&eacute;e au moment o&ugrave; elles seront
+       appliqu&eacute;es. En utilisant le drapeau B, les caract&egrave;res non
+       alphanum&eacute;riques des r&eacute;f&eacute;rences arri&egrave;res seront echapp&eacute;s. Par
+       exemple, consid&eacute;rons la r&egrave;gle :</p>
+        <example>
+        RewriteRule ^(/.*)$ /index.php?show=$1
+        </example>
+        <p>Elle va faire correspondre <code>/C++</code> &agrave;
+       <code>index.php?show=/C++</code>. Mais elle va aussi faire
+       correspondre <code>/C%2b%2b</code> &agrave;
+       <code>/index.php?show=/C++</code>, car le caract&egrave;re
+       <code>%2b</code> n'a pas &eacute;t&eacute; &eacute;chapp&eacute;. Par contre, avec le
+       drapeau B, la substitution s'effectuera vers
+       <code>/index.php?show=/C%2b%2b</code>.</p>
+        <p>Ce processus d'&eacute;chappement est particuli&egrave;rement n&eacute;cessaire
+       dans le contexte du mandataire, o&ugrave; l'adresse d'arri&egrave;re-plan ne
+       fonctionnera pas si elle se pr&eacute;sente sous une forme
+       non &eacute;chapp&eacute;e.</p>
+        </dd>
+
+        <dt>'<code>chain|C</code>'
+        (cha&icirc;nage avec la r&egrave;gle suivante)</dt><dd>
+         Ce drapeau effectue un cha&icirc;nage entre la r&egrave;gle courante et la
+        suivante (qui peut elle-m&ecirc;me &ecirc;tre cha&icirc;n&eacute;e avec la suivante, et
+        ainsi de suite). Ceci provoque l'effet suivant : si une r&egrave;gle
+        correspond, le processus continue normalement - le drapeau n'a
+        aucun effet. Si la r&egrave;gle ne correspond <strong>pas</strong>,
+        toutes les r&egrave;gles cha&icirc;n&eacute;es suivantes sont ignor&eacute;es. Par
+        exemple, ce drapeau peut &ecirc;tre utilis&eacute; pour supprimer la
+        partie ``<code>.www</code>'', dans un jeu de r&egrave;gles au niveau
+        du r&eacute;pertoire, lorsque vous faites intervenir une redirection
+        externe (o&ugrave; la partie ``<code>.www</code>'' ne doit pas
+        figurer !).</dd>
+
+        <dt>'<code>cookie|CO=</code><em>NOM</em>:<em>VAL</em>:<em>domaine</em>[:<em>dur&eacute;e
+       de vie</em>[:<em>chemin</em>[:<em>s&eacute;curit&eacute;</em>[:<em>http
+       seulement</em>]]]]'
+        (d&eacute;finit un cookie)</dt><dd>
+        Ce drapeau d&eacute;finit un cookie au niveau du navigateur du client.
+       Le nom du cookie est sp&eacute;cifi&eacute; par <em>NOM</em>, et sa valeur
+       par <em>VAL</em>. Le champ <em>domaine</em> est le domaine du
+       cookie, comme '.apache.org', le champ optionnel
+       <em>dur&eacute;e de vie</em> est la dur&eacute;e de vie du cookie en minutes
+       (0 signifie que le cookie expire &agrave; la fin de la session),
+       et le champ optionnel <em>chemin</em> le chemin du cookie. Si
+       <em>s&eacute;curit&eacute;</em> est d&eacute;fini &agrave; 'secure, 'true' ou '1', le cookie ne peut
+       &ecirc;tre transmis que par une connexion s&eacute;curis&eacute;e. Si <em>http
+       seulement</em> est d&eacute;fini &agrave; ''HttpOnly', 'true' ou '1', le
+       drapeau <code>HttpOnly</code> est utilis&eacute;, ce qui rend le cookie
+       inaccessible au code JavaScript sur les navigateurs qui
+       supportent ce dernier.</dd>
+
+       <dt>'<code>discardpathinfo|DPI'
+       (ne pas tenir compte de PATH_INFO)</code></dt><dd>
+        <p>Dans un contexte de r&eacute;pertoire, l'URI par rapport auquel
+       chaque r&egrave;gle <directive>RewriteRule</directive> effectue ses
+       comparaisons est la concat&eacute;nation de la valeur courante de l'URI
+       et de PATH_INFO.</p>
+
+       <p>L'URI courant est soit l'URI initial tel qu'envoy&eacute; par le
+       client, soit le r&eacute;sultat d'un passage &agrave; travers le processus de
+       r&eacute;&eacute;criture, soit le r&eacute;sultat de la r&egrave;gle pr&eacute;c&eacute;dente du processus
+       de r&eacute;&eacute;criture courant.</p>
+
+       <p>Par contre, PATH_INFO qui est ajout&eacute; &agrave; l'URI avant chaque
+       r&egrave;gle refl&egrave;te la valeur qu'avait PATH_INFO avant le processus de
+       r&eacute;&eacute;criture. En cons&eacute;quence, si de larges parties de l'URI sont
+       retenues et copi&eacute;es dans une cha&icirc;ne de substitution au cours de
+       multiples directives <directive>RewriteRule</directive>, et ceci
+       sans tenir compte de la part qui revient &agrave; PATH_INFO dans l'URI,
+       il se peut que l'URI final se voit ajouter plusieurs copies de
+       PATH_INFO.</p>
+
+       <p>Utilisez ce drapeau dans toute substitution o&ugrave; le PATH_INFO
+       r&eacute;sultant de la mise en correspondance pr&eacute;c&eacute;dente de cette
+       requ&ecirc;te avec le syst&egrave;me de fichiers ne pr&eacute;sente pas d'int&eacute;r&ecirc;t.
+       Ce drapeau indique qu'il ne faut pas tenir compte du PATH_INFO
+       construit avant que le processus de r&eacute;&eacute;criture courant ait
+       commenc&eacute;. PATH_INFO ne sera pas recalcul&eacute; avant que le processus
+       de r&eacute;&eacute;criture courant se termine. Les r&egrave;gles suivantes
+       rencontr&eacute;es au cours du processus ne verront que le r&eacute;sultat
+       direct des substitutions, sans ajout du PATH_INFO.</p></dd>
+
+        <dt>
+        '<code>env|E=</code><em>VAR</em>:<em>VAL</em>'
+        (d&eacute;finit une variable d'environnement)</dt><dd>
+        Ce drapeau force une variable d'environnement nomm&eacute;e
+       <em>VAR</em> &agrave; prendre la valeur <em>VAL</em>, o&ugrave;
+       <em>VAL</em> peut contenir des r&eacute;f&eacute;rences arri&egrave;res vers des
+       expressions rationnelles (<code>$N</code> et <code>%N</code>)
+       qui seront &eacute;valu&eacute;es. Vous pouvez utiliser ce drapeau plusieurs
+       fois pour d&eacute;finir plusieurs variables. Les variables peuvent
+       ensuite &ecirc;tre d&eacute;r&eacute;f&eacute;renc&eacute;es dans de nombreux cas, et le plus
+       souvent depuis XSSI (via <code>&lt;!--#echo
+        var="VAR"--&gt;</code>) ou CGI (<code>$ENV{'VAR'}</code>).
+       Vous pouvez d&eacute;r&eacute;f&eacute;rencer la variable dans un mod&egrave;le de
+       directive RewriteCond ult&eacute;rieure, en utilisant
+       <code>%{ENV:VAR}</code>. Ce drapeau permet de supprimer
+       des informations d'une URL, tout en conservant la trace de
+       ces informations.</dd>
+
+        <dt>'<code>forbidden|F</code>' (force l'interdiction d'une
+       URL)</dt><dd>
+        Ce drapeau force l'interdiction de l'URL courante - il renvoie
+       imm&eacute;diatement une r&eacute;ponse HTTP 403 (FORBIDDEN). Ce drapeau,
+       associ&eacute; &agrave; des directives RewriteCond appropri&eacute;es, permet de
+       bloquer de mani&egrave;re conditionnelle certaines URLs.</dd>
+
+        <dt>'<code>gone|G</code>' (signale la non-existence d'une
+       URL)</dt><dd>
+        Ce drapeau signale la non-existence d'une URL - il renvoie
+       imm&eacute;diatement une r&eacute;ponse HTTP 410 (GONE). Il permet de marquer
+       les pages qui n'existent plus comme "gone".</dd>
+
+        <dt>
+        '<code>handler|H</code>=<em>Gestionnaire de contenu</em>'
+        (impose un gestionnaire de contenu)</dt><dd>
+         Impose <em>Gestionnaire de contenu</em> comme gestionnaire de
+        contenu pour le fichier cible. Ce drapeau permet par exemple
+        de simuler la directive
+        <directive module="mod_alias">ScriptAlias</directive> du
+        module <module>mod_alias</module>, qui impose en interne le
+        gestionnaire ``<code>cgi-script</code>'' &agrave; tous les fichiers
+        du r&eacute;pertoire correspondant.<br />
+        Dans un contexte de niveau r&eacute;pertoire, aucune substitution ne
+        doit modifier le chemin. N'utilisez ce drapeau dans un contexte
+        de r&eacute;pertoire qu'avec <code>-</code> (tiret) comme
+        substitution, faute de quoi la requ&ecirc;te echouera.</dd>
+
+        <dt>'<code>last|L</code>'
+        (derni&egrave;re r&egrave;gle)</dt><dd>
+       Termine le processus de r&eacute;&eacute;criture ici et n'applique plus
+       aucune r&egrave;gle de r&eacute;&eacute;criture. Ce drapeau est &eacute;quivalent &agrave; la
+       commande Perl <code>last</code> ou la commande C
+       <code>break</code>. Il permet d'&eacute;viter la r&eacute;&eacute;criture par les
+       r&egrave;gles suivantes d'une URL d&eacute;j&agrave; r&eacute;&eacute;crite. Rappelez-vous
+       cependant que si une directive
+       <directive>RewriteRule</directive> g&eacute;n&egrave;re une redirection
+       interne (ce qui arrive fr&eacute;quemment lors d'une r&eacute;&eacute;criture dans
+       un contexte de r&eacute;pertoire), la requ&ecirc;te sera r&eacute;inject&eacute;e et le
+       processus de r&eacute;&eacute;criture sera r&eacute;it&eacute;r&eacute; &agrave; partir de la
+       premi&egrave;re directive <directive>RewriteRule</directive>.</dd>
+
+        <dt>'<code>next|N</code>'
+        (prochain round)</dt><dd>
+        Relance le processus de r&eacute;&eacute;criture (toujours &agrave; partir de la
+       premi&egrave;re r&egrave;gle). Cette fois, l'URL &agrave; comparer n'est plus l'URL
+       originale, mais plut&ocirc;t l'URL renvoy&eacute;e par la derni&egrave;re r&egrave;gle de
+       r&eacute;&eacute;criture. Ce drapeau est &eacute;quivalent &agrave; la commande Perl
+       <code>next</code> ou la commande C <code>continue</code>. Il
+       permet de red&eacute;marrer le processus de r&eacute;&eacute;criture - en se
+       positionnant imm&eacute;diatement au niveau de la premi&egrave;re r&egrave;gle.
+       <strong>Prenez garde &agrave; ne pas cr&eacute;er de bouclage
+       infini !</strong></dd>
+
+        <dt>'<code>nocase|NC</code>'
+        (insensible &agrave; la casse)</dt><dd>
+        Ce drapeau rend le <em>Mod&egrave;le</em> insensible &agrave; la casse,
+       c'est &agrave; dire ne tenant pas compte des majuscules/minuscules
+       lorsque le <em>Mod&egrave;le</em> est compar&eacute; avec l'URL
+       courante.</dd>
+
+        <dt>
+          '<code>noescape|NE</code>'
+          (pas d'&eacute;chappement de l'URI en sortie)</dt><dd>
+          Ce drapeau emp&ecirc;che mod_rewrite d'appliquer les r&egrave;gles
+         d'&eacute;chappement d'URI usuelles au r&eacute;sultat d'une r&eacute;&eacute;criture.
+         Normalement, les caract&egrave;re sp&eacute;ciaux (comme '%', '$', ';',
+         etc...) sont &eacute;chapp&eacute;s en leurs &eacute;quivalents hexad&eacute;cimaux
+         (respectivement '%25', '%24', et '%3B') ; ce drapeau emp&ecirc;che
+         cela de se produire. Il permet au symbole '%' d'appara&icirc;tre
+         en sortie, comme dans
+<example>
+    RewriteRule ^/foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
+</example>
+          qui remplacerait '<code>/foo/zed</code>' par la requ&ecirc;te plus
+         sure '<code>/bar?arg=P1=zed</code>'.
+        </dd>
+
+        <dt>
+          '<code>nosubreq|NS</code>'
+          (sous-requ&ecirc;tes non concern&eacute;es)</dt><dd>
+          <p>Si ce drapeau est pr&eacute;sent, le moteur de r&eacute;&eacute;criture
+         n'applique pas la r&egrave;gle si la requ&ecirc;te courante est une
+         sous-requ&ecirc;te interne. Par exemples, des sous-requ&ecirc;tes sont
+         g&eacute;n&eacute;r&eacute;es en interne par Apache lorsque
+         <module>mod_dir</module> essaie de trouver des
+         informations &agrave; propos d'&eacute;ventuels fichiers de r&eacute;pertoire par
+         d&eacute;faut (fichiers <code>index.xxx</code>). Dans le cas d'une
+         sous-requ&ecirc;te, ce n'est pas toujours utile, et peut m&ecirc;me
+         provoquer des erreurs si l'ensemble du jeu de r&egrave;gles est
+         appliqu&eacute;. Ce drapeau permet d'exclure certaines r&egrave;gles.</p>
+          <p>Pour d&eacute;terminer si l'on doit appliquer une r&egrave;gle ou pas,
+         si une URL est pr&eacute;fix&eacute;e par un script CGI, pour forcer son
+         traitement par le script CGI, vous allez probablement
+         rencontrer des probl&egrave;mes (ou tout du moins une surcharge
+         significative) avec les sous-requ&ecirc;tes. Dans ce cas,
+         utilisez ce drapeau</p>
+        </dd>
+
+        <dt>
+          '<code>proxy|P</code>' (impose le mandataire)</dt><dd>
+          Ce drapeau force l'envoi de la partie substitution en
+         interne en tant que requ&ecirc;te mandataire, et (le processus de
+         r&eacute;&eacute;criture s'arr&ecirc;te ici) son envoi imm&eacute;diat vers le <a
+          href="mod_proxy.html">module proxy</a>. Vous devez vous
+         assurer que la cha&icirc;ne de substitution est un URI valide
+         (d&eacute;butant typiquement par
+         <code>http://</code><em>nom d'h&ocirc;te</em>) pouvant &ecirc;tre trait&eacute;e
+         par le module proxy d'Apache. Si ce n'est pas le cas, le
+         module proxy vous renverra une erreur. Utilisez ce drapeau
+         pour impl&eacute;menter de mani&egrave;re plus puissante la directive <a
+          href="mod_proxy.html#proxypass">ProxyPass</a>, pour mettre
+         en correspondance un contenu distant dans l'espace de
+         nommage du serveur local.
+
+          <p>Note: <module>mod_proxy</module> doit &ecirc;tre activ&eacute; pour
+         pouvoir utiliser ce drapeau..</p>
+        </dd>
+
+        <dt>
+          '<code>passthrough|PT</code>'
+          (passage au gestionnaire suivant)</dt><dd>
+           Ce drapeau force le moteur de r&eacute;&eacute;criture &agrave; affecter
+          la valeur du champ <code>filename</code> au
+          champ <code>uri</code> de la structure interne
+          <code>request_rec</code>. Ce drapeau n'est qu'une astuce
+          permettant un traitement suppl&eacute;mentaire de la sortie des
+          directives <code>RewriteRule</code>, en utilisant
+          <code>Alias</code>, <code>ScriptAlias</code>,
+          <code>Redirect</code>, ou d'autres directives en provenance
+          de divers traducteurs URI/nom de fichier. Par exemple, pour
+          r&eacute;&eacute;crire <code>/abc</code> vers <code>/def</code> avec
+          <module>mod_rewrite</module>, puis <code>/def</code> vers
+          <code>/ghi</code> avec <module>mod_alias</module> :
+<example>
+    RewriteRule ^/abc(.*)  /def$1 [PT]<br />
+    Alias       /def       /ghi
+</example>
+          Si le drapeau <code>PT</code> est omis,
+         <code>mod_rewrite</code> va r&eacute;&eacute;crire
+         <code>uri=/abc/...</code> vers <code>filename=/def/...</code>
+         comme tout traducteur URI/nom de fichier compatible avec
+         l'API doit le faire. Puis, <code>mod_alias</code> va tenter
+         une transition URI vers nom de fichier, et va &eacute;chouer.
+
+          <p>Note: <strong>Vous devez utiliser ce drapeau si vous
+         voulez m&eacute;langer des directives en provenance de diff&eacute;rents
+         modules qui effectuent une traduction
+         URL/nom de fichier</strong>. Un exemple typique est
+         l'utilisation conjointe de <module>mod_alias</module> et de
+         <module>mod_rewrite</module>.</p>
+
+          <p>Le drapeau <code>PT</code> rend implicite la pr&eacute;sence du
+         drapeau <code>L</code> flag : la r&eacute;&eacute;criture sera stopp&eacute;e afin
+         de transmettre la requ&ecirc;te &agrave; la phase suivante du
+         traitement.</p>
+        </dd>
+
+        <dt>'<code>qsappend|QSA</code>'
+        (ajout d'une cha&icirc;ne de requ&ecirc;te - query string)</dt><dd>
+        Ce drapeau force le moteur de r&eacute;&eacute;criture &agrave; ajouter la cha&icirc;ne
+       de substitution &agrave; la cha&icirc;ne de requ&ecirc;te au lieu de remplacer
+       cette derni&egrave;re par la cha&icirc;ne de substitution.
+       Vous pouvez ainsi ajouter des donn&eacute;es &agrave; la cha&icirc;ne de requ&ecirc;te
+       via une r&egrave;gle de r&eacute;&eacute;criture.</dd>
+
+        <dt>'<code>redirect|R</code>
+          [=<em>code</em>]' (force une <a id="redirect"
+          name="redirect">redirection</a>)</dt><dd>
+        <p>Pr&eacute;fixe la <em>cha&icirc;ne de substitution</em> par
+       <code>http://h&ocirc;te[:port]/</code> (ce qui fait de la nouvelle
+       URL un URI) pour forcer une redirection externe. Si aucun
+       <em>code</em> n'est d&eacute;fini, une r&eacute;ponse HTTP 302 (MOVED
+          TEMPORARILY) sera renvoy&eacute;e. Si vous voulez renvoyer un autre
+         code de r&eacute;ponse, sp&eacute;cifiez simplement le nombre appropri&eacute; ou
+         utilisez un des noms symboliques suivants : <code>temp</code>
+         (d&eacute;faut), <code>permanent</code> ou <code>seeother</code>.
+         Vous pouvez utiliser ce drapeau pour que les r&egrave;gles mettent
+         l'URL sous forme canonique et la renvoient au client, pour
+         traduire ``<code>/~</code>'' en ``<code>/u/</code>'', ou pour
+         ajouter syst&eacute;matiquement un slash &agrave;
+         <code>/u/</code><em>utilisateur</em>, etc...<br />
+          <strong>Note:</strong> Si vous utilisez ce drapeau,
+         assurez-vous que le champ de substitution est une URL
+         valide ! Si ce n'est pas le cas, vous serez redirig&eacute; vers
+         une URL invalide. Souvenez-vous que, s'il est seul, ce
+         drapeau va seulement pr&eacute;fixer l'URL par
+         <code>http://h&ocirc;te[:port]/</code>, et que le processus de
+         r&eacute;&eacute;criture va se poursuivre. En g&eacute;n&eacute;ral, vous voudrez plut&ocirc;t
+         stopper la r&eacute;&eacute;criture &agrave; ce point, et rediriger imm&eacute;diatement.
+         Pour stopper la r&eacute;&eacute;criture, vous pouvez ajouter le drapeau
+         'L'.</p>
+          <p>Bien qu'on utilise en g&eacute;n&eacute;ral ce drapeau pour les
+         redirections, on peut sp&eacute;cifier tout code de statut valide.
+         Si le code de statut est en dehors de la gamme des codes de
+         redirection (300-399), la cha&icirc;ne de <em>Substitution</em> est
+         supprim&eacute;e et le processus de r&eacute;&eacute;criture stopp&eacute; comme si le
+         drapeau <code>L</code> &eacute;tait pr&eacute;sent.</p>
+        </dd>
+
+        <dt>'<code>skip|S</code>=<em>num</em>'
+        (saute la/les r&egrave;gle(s) suivantes)</dt><dd>
+        Ce drapeau force le moteur de r&eacute;&eacute;criture &agrave; sauter les
+       <em>num</em> r&egrave;gles cons&eacute;cutives suivantes, si la r&egrave;gle courante
+       s'applique. Il permet de simuler une structure if-then-else : la
+       derni&egrave;re r&egrave;gle du bloc "then" devient <code>skip=N</code>, o&ugrave; N
+       est le nombre de r&egrave;gles contenues dans le bloc "else" (ce qui est
+       un comportement diff&eacute;rent de celui du drapeau 'chain|C' !).</dd>
+
+        <dt>
+        '<code>type|T</code>=<em>type MIME</em>'
+        (force le type MIME)</dt><dd>
+         Force le <glossary>type MIME</glossary> du fichier cible &agrave;
+        <em>type MIME</em>. Ceci permet de d&eacute;finir le type de contenu
+        en fonction de certaines conditions.
+        Dans un contexte de r&eacute;pertoire, utilisez exclusivement
+        <code>-</code> (tiret) comme substitution, faute de quoi le
+        type MIME d&eacute;fini &agrave; l'aide de ce drapeau sera perdu &agrave; cause d'un
+        rejeu du traitement en interne.</dd>
+      </dl>
+
+
+<note><title>D&eacute;veloppement du r&eacute;pertoire home</title>
+<p> Quand la cha&icirc;ne de substitution commence par quelque chose comme
+"/~user" (de mani&egrave;re explicite ou par r&eacute;f&eacute;rences arri&egrave;res), mod_rewrite
+d&eacute;veloppe le r&eacute;pertoire home sans tenir compte de la pr&eacute;sence ou de la
+configuration du module <module>mod_userdir</module>.</p>
+
+<p> Ce d&eacute;veloppement n'est pas effectu&eacute; si le drapeau <em>PT</em> est
+utilis&eacute; dans la directive <directive module="mod_rewrite">RewriteRule</directive></p>
+</note>
+
+<note><title>R&eacute;&eacute;critures dans le contexte de r&eacute;pertoire</title>
+
+<p>Le moteur de r&eacute;&eacute;criture peut &ecirc;tre utilis&eacute; dans les fichiers <a
+href="../howto/htaccess.html">.htaccess</a>. Pour activer le moteur de
+r&eacute;&eacute;criture pour ces fichiers, vous devez pr&eacute;ciser "<code>RewriteEngine
+On</code>" <strong>et</strong> "<code>Options FollowSymLinks</code>"
+doit &ecirc;tre activ&eacute;. Si votre administrateur a interdit la surcharge de
+<code>FollowSymLinks</code> pour un r&eacute;pertoire utilisateur, vous ne
+pouvez pas utiliser le moteur de r&eacute;&eacute;criture. Cette restriction est
+n&eacute;cessaire pour des raisons de s&eacute;curit&eacute;.</p>
+
+<p>Lorsqu'on utilise le moteur de r&eacute;&eacute;criture dans les fichiers
+<code>.htaccess</code>, le pr&eacute;fixe du r&eacute;pertoire (qui est
+toujours le m&ecirc;me pour un r&eacute;pertoire donn&eacute;) est automatiquement
+<em>supprim&eacute;</em> pour la comparaison du mod&egrave;le et automatiquement
+<em>ajout&eacute;</em> une fois la substitution effectu&eacute;e. Cette fonctionnalit&eacute;
+est n&eacute;cessaire pour de nombreux cas de r&eacute;&eacute;criture ; sans elle, vous
+seriez oblig&eacute; de tenir compte du r&eacute;pertoire parent pour la comparaison,
+ce qui n'est pas toujours
+possible. Il y a une exception : si une cha&icirc;ne de substitution commence
+par <code>http://</code>, le pr&eacute;fixe du r&eacute;pertoire ne sera
+<strong>pas</strong> ajout&eacute;, et une redirection externe (ou le passage
+par un mandataire, si le drapeau <strong>P</strong> est utilis&eacute;) sera
+initi&eacute;e. Voir la directive <directive
+module="mod_rewrite">RewriteBase</directive> pour plus de d&eacute;tails.</p>
+
+<p>Le moteur de r&eacute;&eacute;criture peut aussi &ecirc;tre utilis&eacute; dans les sections
+<directive type="section" module="core">Directory</directive> avec les
+m&ecirc;mes r&egrave;gles de comparaison des pr&eacute;fixes que celles qui s'appliquent
+pour les fichiers <code>.htaccess</code>. Cependant, il est en g&eacute;n&eacute;ral
+plus simple, pour &eacute;viter la complication des substitutions de pr&eacute;fixes,
+de d&eacute;finir les r&egrave;gles de r&eacute;&eacute;criture dans le contexte du serveur
+principal ou des h&ocirc;tes virtuels, plut&ocirc;t que dans une section
+<directive type="section" module="core">Directory</directive>.</p>
+
+<p>Bien que du point de vue syntaxique, il soit permis de d&eacute;finir des
+r&egrave;gles de r&eacute;&eacute;criture dans les sections <directive type="section"
+module="core">Location</directive> et <directive
+type="section" module="core">Files</directive>, ce n'est &agrave; priori
+d'aucune utilit&eacute; et n'est pas support&eacute;.</p>
+
+</note>
+
+     <p>Voici toutes les combinaisons de substitution et leurs
+     significations :</p>
+
+      <p><strong>Dans la configuration au niveau du serveur principal
+      (<code>httpd.conf</code>)<br />
+       pour la requ&ecirc;te ``<code>GET
+      /chemin/infochemin</code>'':</strong><br />
+      </p>
+
+<note><pre>
+<strong>R&egrave;gle</strong>                          <strong>R&eacute;sultat de la substitution</strong>
+----------------------------------------------  ----------------------------------
+^/chemin(.*) autre-chemin$1                      non valide, non support&eacute;
+
+^/chemin(.*) autre-chemin$1  [R]                 non valide, non support&eacute;
+
+^/chemin(.*) autre-chemin$1  [P]                 non valide, non support&eacute;
+----------------------------------------------  ----------------------------------
+^/chemin(.*) /autre-chemin$1                     /autre-chemin/infochemin
+
+^/chemin(.*) /autre-chemin$1 [R]                 http://cet-h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) /autre-chemin$1 [P]                 n'a pas lieu d'&ecirc;tre, non support&eacute;
+----------------------------------------------  ----------------------------------
+^/chemin(.*) http://cet-h&ocirc;te/autre-chemin$1      /autre-chemin/infochemin
+
+^/chemin(.*) http://cet-h&ocirc;te/autre-chemin$1 [R]  http://cet-h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) http://cet-h&ocirc;te/autre-chemin$1 [P]  n'a pas lieu d'&ecirc;tre, non support&eacute;
+----------------------------------------------  ----------------------------------
+^/chemin(.*) http://autre h&ocirc;te/autre-chemin$1     http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^/chemin(.*) http://autre h&ocirc;te/autre-chemin$1 [R] http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+                                                (le drapeau [R] est
+                                               redondant)
+
+^/chemin(.*) http://autre h&ocirc;te/autre-chemin$1 [P] http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via un mandataire interne
+</pre></note>
+
+      <p><strong>Dans une configuration de niveau r&eacute;pertoire pour
+      <code>/chemin</code><br />
+       (<code>/chemin/physique/vers/chemin/.htacccess</code>, avec
+      <code>RewriteBase /chemin</code>)<br />
+       pour la requ&ecirc;te ``<code>GET
+      /chemin/chemin-local/infochemin</code>'':</strong><br />
+     </p>
+
+<note><pre>
+<strong>R&egrave;gle</strong>                          <strong>R&eacute;sultat de la substitution</strong>
+----------------------------------------------  ----------------------------------
+^chemin-local(.*) autre-chemin$1                      /chemin/autre-chemin/infochemin
+
+^chemin-local(.*) autre-chemin$1  [R]                 http://cet-h&ocirc;te/chemin/autre-chemin/infochemin
+                                                via redirection externe
+
+^chemin-local(.*) autre-chemin$1  [P]                 n'a pas lieu d'&ecirc;tre, non support&eacute;
+----------------------------------------------  ----------------------------------
+^chemin-local(.*) /autre-chemin$1                     /autre-chemin/infochemin
+
+^chemin-local(.*) /autre-chemin$1 [R]                 http://cet-h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^chemin-local(.*) /autre-chemin$1 [P]                 n'a pas lieu d'&ecirc;tre, non support&eacute;
+----------------------------------------------  ----------------------------------
+^chemin-local(.*) http://cet-h&ocirc;te/autre-chemin$1      /autre-chemin/infochemin
+
+^chemin-local(.*) http://cet-h&ocirc;te/autre-chemin$1 [R]  http://cet-h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^chemin-local(.*) http://cet-h&ocirc;te/autre-chemin$1 [P]  n'a pas lieu d'&ecirc;tre, non support&eacute;
+----------------------------------------------  ----------------------------------
+^chemin-local(.*) http://autre h&ocirc;te/autre-chemin$1     http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+
+^chemin-local(.*) http://autre h&ocirc;te/autre-chemin$1 [R] http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via redirection externe
+                                                (le drapeau [R] est
+                                               redondant)
+
+^chemin-local(.*) http://autre h&ocirc;te/autre-chemin$1 [P] http://autre h&ocirc;te/autre-chemin/infochemin
+                                                via un mandataire interne
+</pre></note>
+  </usage>
+ </directivesynopsis>
+</modulesynopsis>
index 8c28b8cf67db2e3958a96f27f52ada89cb0ed63b..5c9887320a8004ec154a91a223476a64a590bb99 100644 (file)
@@ -8,5 +8,6 @@
 
   <variants>
     <variant>en</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>