]> granicus.if.org Git - apache/blobdiff - docs/manual/rewrite/flags.html.fr
Rebuild.
[apache] / docs / manual / rewrite / flags.html.fr
index cf8a7da9e6e3a3ed27ccea27aa0559688e6364e3..7b9a6f63fddf40333b47ecf978c082b1aa40ae7d 100644 (file)
@@ -1,22 +1,27 @@
 <?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><!--
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+<!--
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
               This file is generated from xml source: DO NOT EDIT
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       -->
-<title>Les drapeaux de réécriture - Serveur Apache HTTP</title>
+<title>Les drapeaux de réécriture - Serveur Apache HTTP Version 2.4</title>
 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
+<script src="../style/scripts/prettify.min.js" type="text/javascript">
+</script>
+
 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
 <body id="manual-page"><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>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
+<p class="apache">Serveur Apache HTTP Version 2.4</p>
+<img alt="" src="../images/feather.png" /></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="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Les drapeaux de réécriture</h1>
+<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.4</a> &gt; <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Les drapeaux de réécriture</h1>
 <div class="toplang">
 <p><span>Langues Disponibles: </span><a href="../en/rewrite/flags.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="../fr/rewrite/flags.html" title="Français">&nbsp;fr&nbsp;</a></p>
@@ -45,30 +50,29 @@ des explications d
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_pt">PT|passthrough</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_qsa">QSA|qsappend</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_qsd">QSD|qsdiscard</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#flag_qsl">QSL|qslast</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_r">R|redirect</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_s">S|skip</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#flag_t">T|type</a></li>
 </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en
-correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées et astuces</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul></div>
+correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="introduction" id="introduction">Introduction</a></h2>
 <p>Le comportement d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par un ou
 plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés
 de crochets, et séparés le cas échéant par des virgules.</p>
-<div class="example"><p><code>
-RewriteRule modèle cible [drapeau1,drapeau2,drapeau3]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule pattern target [Flag1,Flag2,Flag3]</pre>
 
-<p>Les drapeaux ont tous une forme courte, comme <code>CO</code>, ainsi
-qu'une forme longue, comme <code>cookie</code>. Certains drapeaux
-peuvent avoir un ou plusieurs arguments. Les drapeaux sont insensibles à
-la casse.</p>
 
-<p>Chaque drapeau (à quelques exceptions près) possède une forme longue et une forme courte. Bien que
+<p>Chaque drapeau (à quelques exceptions près)
+possède une forme courte, comme <code>CO</code>, ainsi qu'une forme longue,
+comme <code>cookie</code>. Bien que
 la forme courte soit la plus couramment utilisée, nous vous recommandons
 de vous familiariser avec les drapeaux sous leur forme longue, afin de
-bien mémoriser ce que chaque drapeau est supposé faire.</p>
+bien mémoriser ce que chaque drapeau est supposé faire.
+Certains drapeaux acceptent un ou plusieurs arguments. Les drapeaux ne
+sont pas sensibles à la casse.</p>
 
 <p>Les drapeaux qui modifient les métadonnées associées à la requête
 (T=, H=, E=) n'ont aucun effet dans un contexte de répertoire ou de
@@ -92,9 +96,8 @@ ces derni
 non-alphanumériques des références arrières seront échappés. Considérons
 par exemple cette règle :</p>
 
-<div class="example"><p><code>
-RewriteRule ^search/(.*)$ /search.php?term=$1
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "^search/(.*)$" "/search.php?term=$1"</pre>
+
 
 <p>Soit le terme de recherche 'x &amp; y/z' ; un navigateur va le coder
 en 'x%20%26%20y%2Fz', transformant la requête en
@@ -108,7 +111,12 @@ ce que l'on souhaitait.</p>
 à l'URL résultante, ce qui fournit une réécriture correcte en
 <code>/search.php?term=x%20%26%20y%2Fz</code>.</p>
 
-<p>Notez que vous devrez peut-être aussi définir la directive <code class="directive"><a href="../mod/core.html#allowencodedslashes">AllowEncodedSlashes</a></code> à <code>On</code> pour
+<pre class="prettyprint lang-config">RewriteRule "^search/(.*)$" "/search.php?term=$1" [B,PT]</pre>
+
+
+<p>Notez que vous devrez peut-être aussi définir la
+directive <code class="directive"><a href="../mod/core.html#allowencodedslashes">AllowEncodedSlashes</a></code>
+à <code>On</code> pour
 que cet exemple particulier fonctionne, car httpd ne permet pas les
 slashes encodés dans les URLs, et renvoie une erreur 404 s'il en
 rencontre un.</p>
@@ -141,6 +149,15 @@ suivante :</p>
 [CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly]
 </code></p></div>
 
+<p>Si un caractère littéral ':' doit être insérer dans un des champs du
+cookie, une autre syntaxe est disponible. Pour utiliser cette syntaxe
+alternative, le contenu du champ "Name" doit être précédé du caractère
+';', et les sépateurs de champs deviendront des ';'.</p>
+
+<div class="example"><p><code>
+[CO=;NAME;VALUE:MOREVALUE;DOMAIN;lifetime;path;secure;httponly]
+</code></p></div>
+
 <p>Vous devez déclarer un nom, une valeur et un domaine pour que
 le cookie puisse être défini.</p>
 
@@ -154,7 +171,7 @@ deux parties s
 utiliser les valeurs <code>.com</code> ou <code>.net</code>. En effet,
 ce style de cookie est interdit par le modèle de sécurité des cookies.</dd>
 </dl>
+
 <p>Vous pouvez aussi définir les valeurs suivantes :</p>
 
 <dl>
@@ -185,10 +202,9 @@ fonctionnalit
 
 <p>Voici un exemple :</p>
 
-<div class="example"><p><code>
-RewriteEngine On<br />
-RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteEngine On
+RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.org:1440:/]</pre>
+
 
 <p>Dans l'exemple ci-dessus, la règle ne réécrit
 pas la requête. La cible de réécriture "-"
@@ -242,9 +258,8 @@ fonctionnement des variables d'environnement.</p>
 
 <p>La syntaxe complète pour ce drapeau est :</p>
 
-<div class="example"><p><code>
-[E=!VAR]
-</code></p></div>
+<pre class="prettyprint lang-config">[E=!VAR]</pre>
+
 
 <p><code>VAL</code> peut comporter des références arrières
 (<code>$N</code> ou <code>%N</code>) qui seront développées.</p>
@@ -276,8 +291,8 @@ image. Cette variable d'environnement est ensuite utilis
 une telle requête du journal des accès.</p>
 
 <div class="example"><p><code>
-RewriteRule \.(png|gif|jpg) - [E=image:1]<br />
-CustomLog logs/access_log combined env=!image
+RewriteRule "\.(png|gif|jpg)" "-" [E=image:1]<br />
+CustomLog "logs/access_log" combined env=!image
 </code></p></div>
 
 <p>Notez que le même effet peut être obtenu à l'aide de la directive
@@ -298,16 +313,15 @@ redirection externe.</p>
 <h2><a name="flag_f" id="flag_f">F|forbidden</a></h2>
 <p>L'utilisation du drapeau [F] permet de faire envoyer par le serveur au
 client un code de statut "403 Forbidden". Le même effet peut être obtenu à
-l'aide de la directive <code class="directive"><a href="../mod/mod_access.html#deny">Deny</a></code>,
+l'aide de la directive <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code>,
 mais ce drapeau offre plus de souplesse dans l'attribution d'un statut
 Forbidden.</p>
 
 <p>La règle suivante va interdire la téléchargement de fichiers
 <code>.exe</code> depuis votre serveur.</p>
 
-<div class="example"><p><code>
-RewriteRule \.exe - [F]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "\.exe" "-" [F]</pre>
+
 
 <p>Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce
 qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune
@@ -327,11 +341,10 @@ disponible auparavant ne l'est plus actuellement.</p>
 <p>Comme dans le cas du drapeau [F], on utilise en général la syntaxe
 "-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :</p>
 
-<div class="example"><p><code>
-RewriteRule ancienne-ressource - [G,NC]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "oldproduct" "-" [G,NC]</pre>
 
-<p>Lorsqu'on utilise [F], [L] est implicite - c'est à dire que la
+
+<p>Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la
 réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -342,9 +355,8 @@ sp
 l'interprétation de tous les fichiers sans extension par le gestionnaire
 php :</p>
 
-<div class="example"><p><code>
-RewriteRule !\. - [H=application/x-httpd-php]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "!\." "-" [H=application/x-httpd-php]</pre>
+
 
 <p>
 L'expression rationnelle ci-dessus - <code>!\.</code> - correspond à
@@ -357,9 +369,8 @@ faire en sorte que les fichiers <code>.php</code> soient
 <em>affichés</em> par <code>mod_php</code> dans le cas où ils font
 l'objet d'une requête avec l'extension <code>.phps</code> :</p>
 
-<div class="example"><p><code>
-RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]</pre>
+
 
 
 <p>L'expression rationnelle ci-dessus -
@@ -412,11 +423,10 @@ de requ
 directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> permet de s'assurer que si
 la requête concerne déjà <code>index.php</code>, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sera sautée.</p>
 
-<div class="example"><p><code>
-RewriteBase /<br />
-RewriteCond %{REQUEST_URI} !=/index.php<br />
-RewriteRule ^(.*) /index.php?req=$1 [L,PT]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteBase "/"
+RewriteCond "%{REQUEST_URI}" "!=/index.php"
+RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]</pre>
+
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="flag_n" id="flag_n">N|next</a></h2>
@@ -433,9 +443,8 @@ suivant, chaque occurence de A sera remplac
 ceci jusqu'il n'y ait plus de A à remplacer.
 </p>
 
-<div class="example"><p><code>
-RewriteRule (.*)A(.*) $1B$2 [N]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "(.*)A(.*)" "$1B$2" [N]</pre>
+
 
 <p>Vous pouvez vous représenter ce traitement comme une boucle
 <code>while</code> : tant que le modèle de la règle correspond (c'est à
@@ -443,6 +452,15 @@ dire, tant que l'URI contient un <code>A</code>),
 effectuer la substitution (c'est à dire, remplacer le <code>A</code> par
 un <code>B</code>).</p>
 
+<p>A partir de la version 2.4.8, ce module renvoie une erreur après
+32000 itérations afin d'éviter les boucles infinies. Ce nombre maximum
+d'itération peut être modifié via le drapeau N.</p>
+<pre class="prettyprint lang-config"># On veut remplacer 1 caractère à chaque itération de la boucle
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=64000]
+# ... ou s'arrêter après 10 itérations
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=10]</pre>
+
+
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="flag_nc" id="flag_nc">NC|nocase</a></h2>
@@ -456,9 +474,8 @@ transmise par Apache 
 insensible à la casse, si bien que par exemple, <code>.jpg</code> aussi
 bien que <code>.JPG</code> seront acceptés.</p>
 
-<div class="example"><p><code>
-RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]</pre>
+
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="flag_ne" id="flag_ne">NE|noescape</a></h2>
@@ -467,9 +484,8 @@ RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]
 hexadécimal. Le drapeau [NE] permet d'éviter cette conversion.
 </p>
 
-<div class="example"><p><code>
-RewriteRule ^/ancre/(.+) /grosse-page.html#$1 [NE,R]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]</pre>
+
 
 <p>
 Dans l'exemple ci-dessus, <code>/anchor/xyz</code> est réécrit en
@@ -514,9 +530,8 @@ mandataire. Par exemple, si vous voulez que toutes les requ
 soient traitées par un serveur d'images annexe, vous pouvez utiliser
 une règle de ce style :</p>
 
-<div class="example"><p><code>
-RewriteRule (.*)\.(jpg|gif|png) http://images.example.com$1.$2 [P]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]</pre>
+
 
 <p>L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] -
 autrement dit, la requête est immédiatement envoyée au mandataire, et
@@ -532,6 +547,26 @@ directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">Prox
 faire correspondre le contenu distant à l'espace de nommage du serveur
 local.</p>
 
+<div class="warning">
+      <h3>Avertissement à propos de la sécurité</h3>
+      <p>Lors de la construction de l'URL cible de la règle, il convient
+      de prendre en compte l'impact en matière de sécurité qu'aura le
+      fait de permettre au client d'influencer le jeu d'URLs pour
+      lesquelles votre serveur agira en tant que mandataire.
+      Assurez-vous que la partie protocole://nom-serveur de l'URL soit
+      fixe, ou ne permette pas au client de l'influencer induement.</p>
+</div>
+
+<div class="warning">
+      <h3>Avertissement au sujet des performances</h3>
+      <p>Utiliser ce drapeau fait intervenir <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> sans la gestion des connexions
+      persistantes, ce qui signifie que vous obtiendrez des performances meilleurs si vous utilisez
+      <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code>.</p>
+      <p>Ceci est du au fait que ce drapeau induit l'utilisation du worker par défaut, qui
+      ne gère pas la mise en commun des connexions.</p>
+      <p>Partout où cela est possible, préférez l'utilisation de ces directives.</p>
+</div>
+
 <p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour pouvoir
 utiliser ce drapeau.</p>
 
@@ -546,7 +581,7 @@ par contre, elle est trait
 drapeau [PT], le résultat de la règle  <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est passé à nouveau au
 système de mise en correspondance des URLs avec le système de fichiers,
 de façon à ce que les systèmes de mise en correspondance basés sur les
-chemins de fichiers, comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, <code class="directive"><a href="../mod/core.html#redirect">Redirect</a></code>, ou <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>, par exemple, puissent avoir une
+chemins de fichiers, comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>, ou <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>, par exemple, puissent avoir une
 chance d'accomplir leur tâche.
 </p>
 
@@ -555,10 +590,9 @@ Si par exemple, vous avez un <code class="directive"><a href="../mod/mod_alias.h
 vous devez utiliser le drapeau [PT] pour être sûr que l'<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> sera bien évalué.
 </p>
 
-<div class="example"><p><code>
-Alias /icons /usr/local/apache/icons<br />
-RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]
-</code></p></div>
+<pre class="prettyprint lang-config">Alias "/icons" "/usr/local/apache/icons"
+RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]</pre>
+
 
 <p>
 Dans l'exemple précédent, en l'absence du drapeau [PT], l'Alias aurait
@@ -588,9 +622,8 @@ Avec le drapeau [QSA], les cha
 
 <p>Considérons la règle suivante :</p>
 
-<div class="example"><p><code>
-RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
-</code></p></div>
+<pre class="prettyprint lang-config">RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]</pre>
+
 
 <p>Avec le drapeau [QSA], une requête pour
 <code>/pages/123?one=two</code> sera réécrite en
@@ -623,6 +656,24 @@ originale sera supprim
 l'URI cible.
 </p>
 
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="flag_qsl" id="flag_qsl">QSL|qslast</a></h2>
+<p>
+Par défaut, le premier (le plus à gauche) point d'interrogation de la
+substitution sépare le chemin de la requête de sa chaîne de paramètres. Avec le
+drapeau [QSL] au contraire, les deux composants seront séparés en utilisant le
+dernier (le plus à droite) point d'interrogation.</p>
+
+<p>
+Cela peut s'avérer utile lorsqu'on recherche un fichier dont le nom contient des
+points d'interrogation. Si aucune chaîne de paramètre n'est présente dans la
+substitution, il est alors possible d'ajouter un point d'interrogation à la fin
+et d'utiliser ce drapeau.</p>
+
+<p>Ce drapeau est disponible à partir de la version 2.4.19 du serveur HTTP
+Apache.</p>
+
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="flag_r" id="flag_r">R|redirect</a></h2>
@@ -638,10 +689,8 @@ navigateur. Si une URL pleinement qualifi
 <p><em>Tout</em> code de statut de réponse HTTP valide peut être
 spécifié, en utilisant la syntaxe [R=305], le code de statut 302 étant
 utilisé par défaut si aucun code n'est spécifié. Le code de statut
-spécifié n'est pas nécessairement un code de statut de redirection (3xx).
-</p>
-
-<p>Si le code de statut est en dehors de la plage des codes de
+spécifié n'est pas nécessairement un code de statut
+de redirection (3xx). Cependant, si le code de statut est en dehors de la plage des codes de
 redirection (300-399), la chaîne de substitution est entièrement
 supprimée, et la réécriture s'arrête comme si le drapeau <code>L</code>
 était utilisé.</p>
@@ -663,31 +712,52 @@ avertissements 'Invalid URI in request'.
 <div class="section">
 <h2><a name="flag_s" id="flag_s">S|skip</a></h2>
 <p>Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir
-exécuter. Ceci peut s'interpréter comme une instruction
+exécuter. La syntaxe du drapeau [S] est [S=<em>N</em>], où
+<em>N</em> correspond au nombre de règles à sauter (sous
+réserve que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> corresponde).
+Ceci peut s'interpréter comme une instruction
 <code>goto</code>  dans votre jeu de règles de réécriture. Dans
 l'exemple suivant, nous ne voulons exécuter la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> que si l'URI demandé ne
 correspond pas à un fichier existant.</p>
+<pre class="prettyprint lang-config"># La requête concerne-t-elle un fichier qui n'existe pas ?
+RewriteCond "%{REQUEST_FILENAME}" "!-f"
+RewriteCond "%{REQUEST_FILENAME}" "!-d"
+# Si c'est la cas, on saute les deux règles de réécriture suivantes
+RewriteRule ".?" "-" [S=2]
+
+RewriteRule "(.*\.gif)" "images.php?$1"
+RewriteRule "(.*\.html)" "docs.php?$1"</pre>
+
+
 
-<div class="example"><p><code>
-# La requête concerne-t-elle un fichier qui n'existe pas ?<br />
-RewriteCond %{REQUEST_FILENAME} !-f<br />
-RewriteCond %{REQUEST_FILENAME} !-d<br />
-# Si c'est la cas, on saute les deux règles de réécriture suivantes<br />
-RewriteRule .? - [S=2]<br />
-<br />
-RewriteRule (.*\.gif) images.php?$1<br />
-RewriteRule (.*\.html) docs.php?$1
-</code></p></div>
 
 <p>Cette technique trouve son utilité dans le fait qu'une directive
 <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ne s'applique
 qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez
 qu'une directive <code>RewriteCond</code> s'applique à plusieurs règles
 <code>RewriteRule</code>, une technique possible consiste à inverser ces
-conditions et à utiliser le drapeau [Skip]. Cette technique permet
+conditions et ajouter une <code>RewriteRule</code> avec le drapeau [Skip]. Cette technique permet
 d'élaborer des pseudo-constructions if-then-else : la dernière règle du
 bloc then contiendra <code>skip=N</code>, où N est le nombre de règles
-contenues dans le bloc else.</p>
+contenues dans le bloc else :</p>
+<pre class="prettyprint lang-config"># Est-ce que le fichier existe ?
+RewriteCond "%{REQUEST_FILENAME}" "!-f"
+RewriteCond "%{REQUEST_FILENAME}" "!-d"
+# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
+RewriteRule ".?" "-" [S=3]
+
+# Si le fichier existe, alors :
+RewriteRule "(.*\.gif)" "images.php?$1"
+    RewriteRule "(.*\.html)" "docs.php?$1"
+    # Skip past the "else" stanza.
+    RewriteRule ".?" "-" [S=1]
+# ELSE...
+RewriteRule "(.*)" "404.php?file=$1
+# END</pre>
+
+
+<p>Il est probablement plus aisé de définir ce genre de configuration
+via les directives <code class="directive">&lt;If&gt;</code>, <code class="directive">&lt;ElseIf&gt;</code>, et <code class="directive">&lt;Else&gt;</code>.</p>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -699,19 +769,17 @@ identique 
 du code source Perl en tant que plein texte, s'il est requis d'une
 certaine manière :</p>
 
-<div class="example"><p><code>
-# Sert les fichier .pl en tant que plein texte<br />
-RewriteRule \.pl$ - [T=text/plain]
-</code></p></div>
+<pre class="prettyprint lang-config"># Sert les fichier .pl en tant que plein texte
+RewriteRule "\.pl$" "-" [T=text/plain]</pre>
+
 
 <p>Ou encore, si vous possédez une caméra qui produit des fichiers
 images jpeg sans extension, vous pouvez forcer le renvoi de ces images
 avec le type MIME correct en se basant sur le nom du fichier :</p>
 
-<div class="example"><p><code>
-# Les fichiers dont le nom contient 'IMG' sont des images jpg.<br />
-RewriteRule IMG - [T=image/jpg]
-</code></p></div>
+<pre class="prettyprint lang-config"># Les fichiers dont le nom contient 'IMG' sont des images jpg.
+RewriteRule "IMG" "-" [T=image/jpg]</pre>
+
 
 <p>Notez cependant qu'il s'agit d'un exemple trivial, et que le problème
 aurait pu être résolu en utilisant à la place la directive <code class="directive"><a href="../mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code>. Il faut toujours
@@ -732,7 +800,28 @@ utiliser le drapeau <code>L</code> pour terminer la s
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/rewrite/flags.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="../fr/rewrite/flags.html" title="Français">&nbsp;fr&nbsp;</a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/2.4/rewrite/flags.html';
+(function(w, d) {
+    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+        d.write('<div id="comments_thread"><\/div>');
+        var s = d.createElement('script');
+        s.type = 'text/javascript';
+        s.async = true;
+        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+    }
+    else { 
+        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+    }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2016 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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+    prettyPrint();
+}
+//--><!]]></script>
 </body></html>
\ No newline at end of file