]> granicus.if.org Git - apache/blobdiff - docs/manual/rewrite/flags.html.fr
update transformation
[apache] / docs / manual / rewrite / flags.html.fr
index c238cb41712f7516c938b90556dd38d4014b442e..78e30d3dae156bd9e85003a98bce2da159bf0586 100644 (file)
@@ -8,10 +8,13 @@
 <title>Les drapeaux de réécriture - 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="../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.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="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.gif" /></div>
 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
@@ -21,6 +24,8 @@
 <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 class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 
 <p>Ce document décrit les drapeaux disponibles dans la directive
 <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, en fournissant
@@ -49,26 +54,24 @@ des explications d
 <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</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></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="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 Ã&nbsp; 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 +95,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
@@ -187,10 +189,11 @@ fonctionnalit
 
 <p>Voici un exemple :</p>
 
-<div class="example"><p><code>
-RewriteEngine On<br />
+<pre class="prettyprint lang-config">
+RewriteEngine On
 RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/]
-</code></p></div>
+</pre>
+
 
 <p>Dans l'exemple ci-dessus, la règle ne réécrit
 pas la requête. La cible de réécriture "-"
@@ -307,9 +310,8 @@ 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
@@ -329,9 +331,8 @@ 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 [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>
@@ -344,9 +345,9 @@ 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 à
@@ -359,9 +360,10 @@ 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>
+<pre class="prettyprint lang-config">
 RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source]
-</code></p></div>
+</pre>
+
 
 
 <p>L'expression rationnelle ci-dessus -
@@ -414,11 +416,12 @@ 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 />
+<pre class="prettyprint lang-config">
+RewriteBase /
+RewriteCond %{REQUEST_URI} !=/index.php
 RewriteRule ^(.*) /index.php?req=$1 [L,PT]
-</code></p></div>
+</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>
@@ -435,9 +438,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 à
@@ -458,9 +460,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>
@@ -469,9 +470,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
@@ -516,9 +516,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
@@ -544,6 +543,16 @@ local.</p>
       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>
 
@@ -567,10 +576,11 @@ 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
@@ -600,9 +610,9 @@ 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
@@ -650,10 +660,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>
@@ -675,52 +683,53 @@ 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>
-
-<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 />
+<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
-</code></p></div>
+</pre>
+
+
+
 
 <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 à ajouter une <code>RewriteRule</code> avec 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>
-<div class="example"><p><code>
-# Est-ce que le fichier existe ?<br />
-RewriteCond %{REQUEST_FILENAME} !-f<br />
-RewriteCond %{REQUEST_FILENAME} !-d<br />
+<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]
 
-# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.<br />
-RewriteRule .? - [S=3]<br />
-<br />
 # Si le fichier existe, alors :
-<span class="indent">
-       RewriteRule (.*\.gif) images.php?$1<br />
-       RewriteRule (.*\.html) docs.php?$1<br />
-       # Skip past the "else" stanza.<br />
-       RewriteRule .? - [S=1]<br />
-</span>
+RewriteRule (.*\.gif) images.php?$1
+    RewriteRule (.*\.html) docs.php?$1
+    # Skip past the "else" stanza.
+    RewriteRule .? - [S=1]
 # ELSE...
-<span class="indent">
-       RewriteRule (.*) 404.php?file=$1<br />
-</span>
+RewriteRule (.*) 404.php?file=$1
 # END
-</code></p></div>
+</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>
@@ -735,19 +744,21 @@ 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 />
+<pre class="prettyprint lang-config">
+# Sert les fichier .pl en tant que plein texte
 RewriteRule \.pl$ - [T=text/plain]
-</code></p></div>
+</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 />
+<pre class="prettyprint lang-config">
+# Les fichiers dont le nom contient 'IMG' sont des images jpg.
 RewriteRule IMG - [T=image/jpg]
-</code></p></div>
+</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
@@ -768,7 +779,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 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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 2014 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/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