blob: 0469c46439ebf7caa5722391222466d8f333e0dc [file] [log] [blame]
<?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>
<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&#233;&#233;criture - Serveur Apache HTTP Version 2.2</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 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" /><link href="http://httpd.apache.org/docs/current/rewrite/flags.html" rel="canonical" /></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="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.2</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.2</a> &gt; <a href="./">Rewrite</a></div><div id="page-content"><div class="retired"><h4>A savoir</h4>
<p>Ce document concerne une version ancienne (<strong>2.2</strong>)
du serveur HTTP Apache. La version actuelle est
document&#233;e <a href="http://httpd.apache.org/docs/current">ici</a>. Si vous n'avez
pas encore effectu&#233; la mise &#232; jour, veuillez suivre <a href="http://httpd.apache.org/docs/current/upgrading.html">ce
lien</a> pour plus d'informations.</p>
<p>Pour consulter la version actuelle de ce
document, vous pouvez suivre <a href="http://httpd.apache.org/docs/current/rewrite/flags.html">ce lien</a>.</p></div><div id="preamble"><h1>Les drapeaux de r&#233;&#233;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&#231;ais">&nbsp;fr&nbsp;</a></p>
</div>
<p>Ce document d&#233;crit les drapeaux disponibles dans la directive
<code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, en fournissant
des explications d&#233;taill&#233;es et des exemples.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_b">B (&#233;chappement dans les r&#233;f&#233;rences arri&#232;res)</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_c">C|chain</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_co">CO|cookie</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_dpi">DPI|discardpathinfo</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_e">E|env</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_f">F|forbidden</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_g">G|gone</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_h">H|handler</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_l">L|last</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_n">N|next</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_nc">NC|nocase</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_ne">NE|noescape</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_ns">NS|nosubreq</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_p">P|proxy</a></li>
<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_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 &#224; mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en
correspondance</a></li><li><a href="access.html">Contr&#244;le d'acc&#232;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&#233;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 &#234;tre modifi&#233; par un ou
plusieurs drapeaux. Les drapeaux sont situ&#233;s en fin de r&#232;gle, entour&#233;s
de crochets, et s&#233;par&#233;s le cas &#233;ch&#233;ant par des virgules.</p>
<div class="example"><p><code>
RewriteRule mod&#232;le cible [drapeau1,drapeau2,drapeau3]
</code></p></div>
<p>Chaque drapeau (&#224; quelques exceptions pr&#232;s)
poss&#232;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&#233;e, nous vous recommandons
de vous familiariser avec les drapeaux sous leur forme longue, afin de
bien m&#233;moriser ce que chaque drapeau est suppos&#233; faire.
Certains drapeaux acceptent un ou plusieurs arguments. Les drapeaux ne
sont pas sensibles &#224; la casse.</p>
<p>Les drapeaux qui modifient les m&#233;tadonn&#233;es associ&#233;es &#224; la requ&#234;te
(T=, H=, E=) n'ont aucun effet dans un contexte de r&#233;pertoire ou de
fichier htaccess, lorsqu'une substitution (autre que '-') est effectu&#233;e
au cours de la m&#234;me passe du processus de r&#233;&#233;criture.
</p>
<p>Chaque drapeau disponible est pr&#233;sent&#233; ici, avec un exemple
d'utilisation.</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_b" id="flag_b">B (&#233;chappement dans les r&#233;f&#233;rences arri&#232;res)</a></h2>
<p>Avec le drapeau [B], la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> &#233;chappe les caract&#232;res
non-alphanum&#233;riques avant d'appliquer la transformation.</p>
<p><code>mod_rewrite</code> doit supprimer les s&#233;quences d'&#233;chappement
des URLs avant leur
mise en correspondance avec le syst&#232;me de fichiers ; les s&#233;quences
d'&#233;chappement sont donc supprim&#233;es des r&#233;f&#233;rences arri&#232;res au moment o&#249;
ces derni&#232;res sont appliqu&#233;es. Avec le drapeau B, les caract&#232;res
non-alphanum&#233;riques des r&#233;f&#233;rences arri&#232;res seront &#233;chapp&#233;s. Consid&#233;rons
par exemple cette r&#232;gle :</p>
<pre class="prettyprint lang-config">RewriteRule ^search/(.*)$ /search.php?term=$1</pre>
<p>Soit la cha&#238;ne 'x &amp; y/z' ; un navigateur va la coder en
'x%20%26%20y%2Fz', transformant la requ&#234;te en 'search/x%20%26%20y%2Fz'.
Sans le drapeau B, la r&#232;gle va intercepter la cha&#238;ne 'search.php?term=x
&amp; y/z' qui n'est pas une URL valide, et la coder en
<code>search.php?term=x%20&amp;y%2Fz=</code>, ce qui ne correspond pas
au r&#233;sultat attendu.</p>
<p>Avec le drapeau B, la r&#232;gle va r&#233;encoder les param&#232;tres avant de les
passer &#224; l'URL de sortie, ce qui va produire l'URL correcte
<code>/search.php?term=x%20%26%20y%2Fz</code>.</p>
<p>Notez que vous serez peut-&#234;tre amen&#233; &#224; d&#233;finir la directive
<code class="directive"><a href="../mod/core.html#allowencodedslashes">AllowEncodedSlashes</a></code> &#224;
<code>On</code> pour que cet exemple fonctionne, car httpd n'autorise
pas les slashes encod&#233;s dans les URLs et renvoie une erreur 404 s'il en
rencontre un.</p>
<p>Ce processus d'&#233;chappement est en particulier n&#233;cessaire dans le
contexte d'un mandataire, o&#249; l'acc&#232;s au serveur d'arri&#232;re-plan &#233;chouera
si on pr&#233;sente &#224; ce dernier une URL non &#233;chapp&#233;e.</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_c" id="flag_c">C|chain</a></h2>
<p>Le drapeau [C] ou [chain] indique que la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est cha&#238;n&#233;e avec la
suivante. Autrement dit, si la r&#232;gle s'applique, elle est trait&#233;e
normalement et passe le contr&#244;le &#224; la r&#232;gle suivante. Par contre, si
elle ne s'applique pas, la r&#232;gle suivante, ainsi que toutes les r&#232;gles
cha&#238;n&#233;es qui suivent, seront saut&#233;es.</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_co" id="flag_co">CO|cookie</a></h2>
<p>Le drapeau [CO], ou [cookie], vous permet de d&#233;finir un cookie
lorsqu'une r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>
s'applique. Il poss&#232;de trois arguments obligatoires et
quatre arguments optionnels.</p>
<p>La syntaxe compl&#232;te de ce drapeau, avec tous ses attributs, est la
suivante :</p>
<div class="example"><p><code>
[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly]
</code></p></div>
<p>Vous devez d&#233;clarer un nom, une valeur et un domaine pour que
le cookie puisse &#234;tre d&#233;fini.</p>
<dl>
<dt>Domain</dt>
<dd>Le domaine pour lequel vous souhaitez que le cookie soit valide. Ce
peut &#234;tre un nom de serveur, comme <code>www.example.com</code>, ou un
domaine, comme <code>.example.com</code>. Il doit comporter au moins
deux parties s&#233;par&#233;es par un point. C'est &#224; dire que vous ne pouvez pas
utiliser les valeurs <code>.com</code> ou <code>.net</code>. En effet,
ce style de cookie est interdit par le mod&#232;le de s&#233;curit&#233; des cookies.</dd>
</dl>
<p>Vous pouvez aussi d&#233;finir les valeurs suivantes :</p>
<dl>
<dt>Lifetime</dt>
<dd>La dur&#233;e de vie du cookie, en minutes.</dd>
<dd>Avec la valeur 0 (valeur par d&#233;faut), le cookie est maintenu pendant
la dur&#233;e de la session du navigateur. Avant la version 2.2.28, la
valeur 0 impliquait une expiration imm&#233;diate du cookie, et il &#233;tait
impossible de sp&#233;cifi&#233; une autre dur&#233;e de vie si un autre param&#232;tre
(Path, Secure, httponly) &#233;tait pr&#233;sent.</dd>
<dt>Path</dt>
<dd>Le chemin, sur le site web concern&#233;, pour lequel le cookie est
valide, du style <code>/clients/</code> or
<code>/fichiers/telechargement/</code>.</dd>
<dd>La valeur par d&#233;faut est <code>/</code> - c'est &#224; dire l'ensemble du
site web.</dd>
<dt>Secure</dt>
<dd>Si cet argument a pour valeur <code>secure</code>,
<code>true</code>, ou <code>1</code>, le cookie ne pourra &#234;tre transmis
que dans le cadre d'une connexion s&#233;curis&#233;e (https).</dd>
<dt>httponly</dt>
<dd>Si cet argument a pour valeur <code>HttpOnly</code>,
<code>true</code>, ou <code>1</code>, le cookie aura son drapeau
<code>HttpOnly</code> activ&#233;, ce qui signifie qu'il sera inaccessible au
code JavaScript pour les navigateurs qui supportent cette
fonctionnalit&#233;.</dd>
</dl>
<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>
<p>Dans l'exemple ci-dessus, la r&#232;gle ne r&#233;&#233;crit
pas la requ&#234;te. La cible de r&#233;&#233;criture "-"
indique &#224; mod_rewrite de transmettre la requ&#234;te sans
modification. Par contre, il
d&#233;finit un cookie nomm&#233; 'frontdoor' avec une valeur 'yes'. Le cookie est
valide pour tout h&#244;te situ&#233; dans le domaine <code>.example.org</code>. Sa
dur&#233;e de vie est limit&#233;e &#224; 1440 minutes (24 heures), et il sera renvoy&#233;
pour tous les URIs.</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_dpi" id="flag_dpi">DPI|discardpathinfo</a></h2>
<p>Avec le drapeau DPI, la partie PATH_INFO de l'URI
r&#233;&#233;crit est supprim&#233;e.</p>
<p>Ce drapeau est disponible dans les versions 2.2.12 et sup&#233;rieures.</p>
<p>Dans un contexte de r&#233;pertoire, l'URI mis en comparaison par chaque
r&#232;gle <code class="directive">RewriteRule</code> est la concat&#233;nation des
valeurs courantes de l'URI et de PATH_INFO.</p>
<p>L'URI courant peut &#234;tre l'URI initial tel qu'il a &#233;t&#233; fourni par le
client, le r&#233;sultat d'une passe pr&#233;c&#233;dente du processus de r&#233;&#233;criture,
ou le r&#233;sultat de la r&#232;gle pr&#233;c&#233;dente dans le processus courant de
r&#233;&#233;criture.</p>
<p>Par contre, la partie PATH_INFO ajout&#233;e &#224; l'URI avant chaque r&#232;gle ne
refl&#232;te que la valeur de PATH_INFO avant la passe courante du processus
de r&#233;&#233;criture. En cons&#233;quence, si de larges portions de l'URI
correspondent et sont traduites via plusieurs directives
<code class="directive">RewriteRule</code>, sans prendre en compte
quelles parties de l'URI provenaient du PATH_INFO courant, l'URI final
pourra se voir ajouter plusieurs copies de PATH_INFO.</p>
<p>Utilisez ce drapeau pour toute substitution o&#249; la pr&#233;sence du PATH_INFO qui
r&#233;sultait de la mise en correspondance pr&#233;c&#233;dente de cette requ&#234;te avec
le syst&#232;me de fichier n'est pas n&#233;cessaire. Avec ce drapeau, le
PATH_INFO &#233;tabli avant que cette passe du processus de r&#233;&#233;criture ne
d&#233;bute est oubli&#233;. PATH_INFO ne sera pas recalcul&#233; tant que la passe
courante du processus de r&#233;&#233;criture ne sera pas achev&#233;e. Les r&#232;gles
suivantes de cette passe ne verront que le r&#233;sultat direct des
substitutions, sans aucun PATH_INFO ajout&#233;.</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_e" id="flag_e">E|env</a></h2>
<p>Avec le drapeau [E], ou [env], vous pouvez d&#233;finir la valeur d'une
variable d'environnement. Notez que certaines variables d'environnement
peuvent &#234;tre d&#233;finies apr&#232;s le traitement de la r&#232;gle, annulant par
la-m&#234;me ce que vous avez d&#233;fini. Voir le <a href="../env.html">document
sur les variables d'environnement</a> pour plus de d&#233;tails sur le
fonctionnement des variables d'environnement.</p>
<p>La syntaxe compl&#232;te pour ce drapeau est :</p>
<div class="example"><p><code>
[E=!VAR]
</code></p></div>
<p><code>VAL</code> peut comporter des r&#233;f&#233;rences arri&#232;res
(<code>$N</code> ou <code>%N</code>) qui seront d&#233;velopp&#233;es.</p>
<p>En utilisant la version courte</p>
<div class="example"><p><code>
[E=VAR]
</code></p></div>
<p>vous pouvez d&#233;finir la variable d'environnement nomm&#233;e
<code>VAR</code> avec une valeur vide.</p>
<p>La forme</p>
<div class="example"><p><code>
[E=!VAR]
</code></p></div>
<p>permet d'annuler la d&#233;finition de la variable <code>VAR</code>.</p>
<p>Les variables d'environnement s'emploient dans diff&#233;rents contextes,
comme les programmes CGI, d'autres directives RewriteRule, ou des
directives CustomLog.</p>
<p>L'exemple suivant d&#233;finit une variable d'environnement nomm&#233;e 'image'
avec une valeur de '1' si l'URI de la requ&#234;te correspond &#224; un fichier
image. Cette variable d'environnement est ensuite utilis&#233;e pour exclure
une telle requ&#234;te du journal des acc&#232;s.</p>
<div class="example"><p><code>
RewriteRule \.(png|gif|jpg) - [E=image:1]<br />
CustomLog logs/access_log combined env=!image
</code></p></div>
<p>Notez que le m&#234;me effet peut &#234;tre obtenu &#224; l'aide de la directive
<code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. Cette technique
est pr&#233;sent&#233;e &#224; titre d'exemple et non de recommandation.</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_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&#234;me effet peut &#234;tre obtenu &#224;
l'aide de la directive <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code>,
mais ce drapeau offre plus de souplesse dans l'attribution d'un statut
Forbidden.</p>
<p>La r&#232;gle suivante va interdire la t&#233;l&#233;chargement de fichiers
<code>.exe</code> depuis votre serveur.</p>
<div class="example"><p><code>
RewriteRule \.exe - [F]
</code></p></div>
<p>Cet exemple utilise la syntaxe "-" pour la cible de r&#233;&#233;criture, ce
qui signifie que l'URI de la requ&#234;te n'est pas modifi&#233;. Il n'y a aucune
raison de r&#233;&#233;crire un URI, si vous avez l'intention d'interdire la
requ&#234;te.</p>
<p>Lorsqu'on utilise [F], [L] est implicite - c'est &#224; dire que la
r&#233;ponse est renvoy&#233;e imm&#233;diatement, et aucune autre r&#232;gle n'est &#233;valu&#233;e.</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_g" id="flag_g">G|gone</a></h2>
<p>Le drapeau [G] permet de faire envoyer par le serveur un code de statut
"410 Gone" avec la r&#233;ponse. Ce code indique qu'une ressource qui &#233;tait
disponible auparavant ne l'est plus actuellement.</p>
<p>Comme dans le cas du drapeau [F], on utilise en g&#233;n&#233;ral la syntaxe
"-" pour la cible de r&#233;&#233;criture lorsqu'on utilise le drapeau [G] :</p>
<div class="example"><p><code>
RewriteRule ancienne-ressource - [G,NC]
</code></p></div>
<p>Lorsqu'on utilise [G], [L] est implicite - c'est &#224; dire que la
r&#233;ponse est renvoy&#233;e imm&#233;diatement, et aucune autre r&#232;gle n'est &#233;valu&#233;e.</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_h" id="flag_h">H|handler</a></h2>
<p>Force le traitement de la requ&#234;te r&#233;sultante par le gestionnaire
sp&#233;cifi&#233;. Par exemple, on peut utiliser ce drapeau pour forcer
l'interpr&#233;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>
<p>
L'expression rationnelle ci-dessus - <code>!\.</code> - correspond &#224;
toute requ&#234;te qui ne contient pas le caract&#232;re <code>.</code>.
</p>
<p>On peut aussi utiliser ce drapeau pour forcer l'utilisation d'un
certain gestionnaire en fonction de certaines conditions. Par exemple,
l'extrait suivant utilis&#233; dans un contexte de niveau serveur permet de
faire en sorte que les fichiers <code>.php</code> soient
<em>affich&#233;s</em> par <code>mod_php</code> dans le cas o&#249; ils font
l'objet d'une requ&#234;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>
<p>L'expression rationnelle ci-dessus -
<code>^(/source/.+\.php)s$</code> - va correspondre &#224; toute requ&#234;te qui
d&#233;butera par <code>/source/</code>, continuera par 1 ou n caract&#232;res
puis par <code>.phps</code>. La r&#233;f&#233;rence arri&#232;re $1 fait r&#233;f&#233;rence &#224; la
correspondance captur&#233;e entre parenth&#232;ses de l'expression
rationnelle.</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_l" id="flag_l">L|last</a></h2>
<p>Lorsque le drapeau [L] est pr&#233;sent, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
arr&#234;te le traitement du jeu de r&#232;gles. Cela signifie dans la plupart des
situations que si la r&#232;gle s'applique, aucune autre r&#232;gle ne sera
trait&#233;e. Ce drapeau correspond &#224; la commande Perl <code>last</code>, ou
&#224; la commande <code>break</code> en C. Utilisez ce drapeau pour indiquer
que la r&#232;gle courante doit &#234;tre appliqu&#233;e imm&#233;diatement, sans tenir
compte des r&#232;gles ult&#233;rieures.</p>
<p>Si vous utilisez des r&#232;gles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans des fichiers
<code>.htaccess</code> ou des sections <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, il est important d'avoir quelques
notions sur la mani&#232;re dont les r&#232;gles sont trait&#233;es. Pour simplifier,
une fois les r&#232;gles trait&#233;es, la requ&#234;te r&#233;&#233;crite est pass&#233;e &#224; nouveau
au moteur d'interpr&#233;tation des URLs afin que ce dernier puisse la
traiter. Il est possible qu'au cours du traitement de la requ&#234;te
r&#233;&#233;crite, le fichier <code>.htaccess</code> ou la section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> soient &#224; nouveau
rencontr&#233;s, entra&#238;nant un nouveau traitement du jeu de r&#232;gles depuis le
d&#233;but. Cette situation se pr&#233;sente le plus souvent lorsqu'une des r&#232;gles
provoque une redirection - interne ou externe - ce qui r&#233;initialise le
traitement de la requ&#234;te.</p>
<p>Si vous utilisez des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans un de ces contextes,
il importe par cons&#233;quent de pr&#233;voir explicitement des &#233;tapes permettant
d'&#233;viter un bouclage infini sur les r&#232;gles,
et de ne pas compter seulement sur
le drapeau [L] pour terminer l'ex&#233;cution d'une s&#233;rie de r&#232;gles, comme
d&#233;crit ci-dessous.</p>
<p>Dans l'exemple donn&#233; ici, toute requ&#234;te est r&#233;&#233;crite en
<code>index.php</code>, la requ&#234;te originale &#233;tant ajout&#233;e comme cha&#238;ne
de requ&#234;te en argument &#224; <code>index.php</code> ; cependant, la
directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> permet de s'assurer que si
la requ&#234;te concerne d&#233;j&#224; <code>index.php</code>, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sera saut&#233;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>
</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>
<p>Le drapeau [N] provoque un red&#233;marrage du traitement des r&#232;gles
depuis le d&#233;but, en utilisant le r&#233;sultat du jeu de r&#232;gles, sous
r&#233;serve qu'il existe un point de d&#233;marrage ; &#224; utiliser avec pr&#233;cautions
car il peut provoquer un bouclage infini.
</p>
<p>
Le drapeau [Next] peut servir, par exemple,
&#224; remplacer de mani&#232;re r&#233;p&#233;titive
une cha&#238;ne de caract&#232;re ou une lettre dans une requ&#234;te. Dans l'exemple
suivant, chaque occurence de A sera remplac&#233;e par B dans la requ&#234;te, et
ceci jusqu'il n'y ait plus de A &#224; remplacer.
</p>
<div class="example"><p><code>
RewriteRule (.*)A(.*) $1B$2 [N]
</code></p></div>
<p>Vous pouvez vous repr&#233;senter ce traitement comme une boucle
<code>while</code> : tant que le mod&#232;le de la r&#232;gle correspond (c'est &#224;
dire, tant que l'URI contient un <code>A</code>),
effectuer la substitution (c'est &#224; dire, remplacer le <code>A</code> par
un <code>B</code>).</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_nc" id="flag_nc">NC|nocase</a></h2>
<p>Avec le drapeau [NC], le mod&#232;le de la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est compar&#233; &#224; la requ&#234;te de
mani&#232;re insensible &#224; la casse. C'est &#224; dire que cette comparaison
s'effectue sans tenir compte des majuscules/minuscules dans l'URI
compar&#233;.</p>
<p>Dans l'exemple suivant, toute requ&#234;te pour un fichier image sera
transmise par Apache &#224; votre serveur d'images d&#233;di&#233;. La correspondance est
insensible &#224; la casse, si bien que par exemple, <code>.jpg</code> aussi
bien que <code>.JPG</code> seront accept&#233;s.</p>
<div class="example"><p><code>
RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]
</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="flag_ne" id="flag_ne">NE|noescape</a></h2>
<p>Par d&#233;faut, les caract&#232;res sp&#233;ciaux, comme <code>&amp;</code> et
<code>?</code>, sont convertis en leur &#233;quivalent
hexad&#233;cimal. Le drapeau [NE] permet d'&#233;viter cette conversion.
</p>
<div class="example"><p><code>
RewriteRule ^/ancre/(.+) /grosse-page.html#$1 [NE,R]
</code></p></div>
<p>
Dans l'exemple ci-dessus, <code>/anchor/xyz</code> est r&#233;&#233;crit en
<code>/bigpage.html#xyz</code>. En l'absence du drapeau [NE], le #
aurait &#233;t&#233; converti en son &#233;quivalent hexad&#233;cimal, <code>%23</code>, ce
qui aurait provoqu&#233; un code d'erreur "404 Not Found".
</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_ns" id="flag_ns">NS|nosubreq</a></h2>
<p>Le drapeau [NS] emp&#234;che la r&#232;gle de s'appliquer aux sous-requ&#234;tes.
Par exemple, une page incluse au moyen d'une SSI (Server
Side Include) est une sous-requ&#234;te, et vous ne voudrez probablement pas que
la r&#233;&#233;criture s'applique &#224; ces sous-requ&#234;tes. Ainsi, lorsque
<code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> recherche des informations &#224; propos des
fichiers par d&#233;faut du r&#233;pertoire (comme les fichiers
<code>index.html</code>), il s'agit d'une sous-requ&#234;te interne, et vous
ne d&#233;sirez en g&#233;n&#233;ral pas que ces sous-requ&#234;tes soient r&#233;&#233;crites. Cette
r&#233;&#233;criture
n'est pas toujours utile pour les sous-requ&#234;tes, et peut m&#234;me causer des
erreurs si l'ensemble du jeu de r&#232;gles est appliqu&#233;. L'utilisation de
ce drapeau permet d'exclure les r&#232;gles qui peuvent poser probl&#232;me.</p>
<p>Comment d&#233;terminer si vous devez utiliser cette r&#232;gle ou non : si
vous pr&#233;fixez les URLs avec des scripts CGI, afin de forcer leur
traitement par le script CGI, vous vous exposez &#224; des probl&#232;mes (ou du
moins &#224; une surcharge significative) avec les sous-requ&#234;tes. Dans ces
cas, vous devez utiliser ce drapeau.</p>
<p>
Les images, scripts java, ou fichiers css, charg&#233;s en tant que partie
d'une page html, ne sont pas des sous-requ&#234;tes - le navigateur les
appelle sous forme de requ&#234;tes HTTP &#224; part enti&#232;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="flag_p" id="flag_p">P|proxy</a></h2>
<p>L'utilisation du drapeau [P] entra&#238;ne le traitement de la requ&#234;te par
le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, et ceci via une requ&#234;te de
mandataire. Par exemple, si vous voulez que toutes les requ&#234;tes d'images
soient trait&#233;es par un serveur d'images annexe, vous pouvez utiliser
une r&#232;gle de ce style :</p>
<div class="example"><p><code>
RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P]
</code></p></div>
<p>L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] -
autrement dit, la requ&#234;te est imm&#233;diatement envoy&#233;e au mandataire, et
toute r&#232;gle ult&#233;rieure sera ignor&#233;e.</p>
<p>
Vous devez vous assurer que la cha&#238;ne de substitution soit un URI valide
(commen&#231;ant typiquement par <code>http://</code><em>nom-serveur</em>)
qui puisse &#234;tre trait&#233;e par le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. Dans
le cas contraire, le module mandataire vous renverra une erreur.
L'utilisation de ce drapeau impl&#233;mente de mani&#232;re plus puissante la
directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>, pour
faire correspondre le contenu distant &#224; l'espace de nommage du serveur
local.</p>
<div class="warning">
<h3>Avertissement &#224; propos de la s&#233;curit&#233;</h3>
<p>Lors de la construction de l'URL cible de la r&#232;gle, il convient
de prendre en compte l'impact en mati&#232;re de s&#233;curit&#233; 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>
<p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit &#234;tre activ&#233; pour pouvoir
utiliser ce drapeau.</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_pt" id="flag_pt">PT|passthrough</a></h2>
<p>
Par d&#233;faut, la cible (ou cha&#238;ne de substitution) d'une r&#232;gle
RewriteRule est sens&#233;e &#234;tre un chemin de fichier. Avec le drapeau [PT],
par contre, elle est trait&#233;e comme un URI. Autrement dit, avec le
drapeau [PT], le r&#233;sultat de la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est pass&#233; &#224; nouveau au
syst&#232;me de mise en correspondance des URLs avec le syst&#232;me de fichiers,
de fa&#231;on &#224; ce que les syst&#232;mes de mise en correspondance bas&#233;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/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&#226;che.
</p>
<p>
Si par exemple, vous avez un <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> pour /icons, et une r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> qui renvoie vers /icons,
vous devez utiliser le drapeau [PT] pour &#234;tre s&#251;r que l'<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> sera bien &#233;valu&#233;.
</p>
<div class="example"><p><code>
Alias /icons /usr/local/apache/icons<br />
RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]
</code></p></div>
<p>
Dans l'exemple pr&#233;c&#233;dent, en l'absence du drapeau [PT], l'Alias aurait
&#233;t&#233; ignor&#233;, ce qui aurait provoqu&#233; une erreur 'File not found'.
</p>
<p>Avec le drapeau <code>PT</code>, le drapeau <code>L</code> est
implicite : la r&#233;&#233;criture s'arr&#234;tera afin de transmettre la requ&#234;te &#224; la
phase suivante du traitement.</p>
<p>Notez que le drapeau <code>PT</code> est implicite dans des contextes
de r&#233;pertoire comme les sections <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou les fichiers
<code>.htaccess</code>. Le seul moyen de contourner ceci consiste &#224;
r&#233;&#233;crire vers <code>-</code>.</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_qsa" id="flag_qsa">QSA|qsappend</a></h2>
<p>
Quand l'URI de remplacement contient une cha&#238;ne de requ&#234;te, le
comportement par d&#233;faut de la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est de supprimer la <code>
query string</code> (il s'agit des param&#232;tres &#233;ventuellement pass&#233;s dans l'URL apr&#232;s le
caract&#232;re <code>?</code>, usuellement pour les formulaires trait&#233;s par la
m&#233;thode HTTP <code>GET</code>) existante, et de la remplacer par celle nouvellement cr&#233;&#233;e.
Avec le drapeau [QSA], les cha&#238;nes de requ&#234;te peuvent &#234;tre combin&#233;es.
</p>
<p>Consid&#233;rons la r&#232;gle suivante :</p>
<div class="example"><p><code>
RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
</code></p></div>
<p>Avec le drapeau [QSA], une requ&#234;te pour
<code>/pages/123?one=two</code> sera r&#233;&#233;crite en
<code>/page.php?page=123&amp;one=two</code>. Sans le drapeau [QSA], la
m&#234;me requ&#234;te sera r&#233;&#233;crite en <code>/page.php?page=123</code> -
autrement dit, la cha&#238;ne de requ&#234;te (<code>query string</code>) existante sera supprim&#233;e.
</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_qsd" id="flag_qsd">QSD|qsdiscard</a></h2>
<p>
Lorsque l'URI de la requ&#234;te contient une cha&#238;ne de param&#232;tres, et si
l'URI cible n'en contient pas, le comportement par d&#233;faut de la
directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> consiste &#224; copier cette
cha&#238;ne de param&#232;tres dans l'URI cible. Avec le drapeau [QSD], la cha&#238;ne
de param&#232;tres est supprim&#233;e.
</p>
<p>Ce drapeau est disponible dans les versions 2.4.0 et sup&#233;rieures.</p>
<p>
Lorsque les drapeaux [QSD] et [QSA] sont utilis&#233;s ensemble, c'est le
drapeau [QSD] qui l'emporte.
</p>
<p>
Si l'URI cible poss&#232;de une cha&#238;ne de param&#232;tres, le comportement par
d&#233;faut sera respect&#233; - c'est &#224; dire que la cha&#238;ne de param&#232;tres
originale sera supprim&#233;e et remplac&#233;e par la cha&#238;ne de param&#232;tres de
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_r" id="flag_r">R|redirect</a></h2>
<p>
L'utilisation du drapeau [R] provoque l'envoi d'une redirection au
navigateur. Si une URL pleinement qualifi&#233;e (FQDN - fully qualified domain name)
est sp&#233;cifi&#233;e (c'est &#224; dire incluant <code>http://nom-du-serveur/</code>),
une redirection sera effectu&#233;e vers cette adresse. Dans le cas contraire,
le protocole courant, le nom du serveur et le num&#233;ro de port seront
utilis&#233;s pour g&#233;n&#233;rer l'URL envoy&#233;e avec la redirection.
</p>
<p><em>Tout</em> code de statut de r&#233;ponse HTTP valide peut &#234;tre
sp&#233;cifi&#233;, en utilisant la syntaxe [R=305], le code de statut 302 &#233;tant
utilis&#233; par d&#233;faut si aucun code n'est sp&#233;cifi&#233;. Le code de statut
sp&#233;cifi&#233; n'est pas n&#233;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&#238;ne de substitution est enti&#232;rement
supprim&#233;e, et la r&#233;&#233;criture s'arr&#234;te comme si le drapeau <code>L</code>
&#233;tait utilis&#233;.</p>
<p>En plus des codes de statut de r&#233;ponse, vous pouvez sp&#233;cifier les
codes de redirection en utilisant leurs noms symboliques :
<code>temp</code> (d&#233;faut), <code>permanent</code>, ou
<code>seeother</code>.</p>
<p>
Vous utiliserez presque toujours [R] en conjonction avec [L] (c'est &#224;
dire [R,L]), car employ&#233; seul, le drapeau [R] pr&#233;fixe l'URI avec
<code>http://cet-h&#244;te[:ce-port]</code>, mais passe ensuite cette adresse
&#224; la r&#232;gle suivante, ce qui provoquera le plus souvent des
avertissements 'Invalid URI in request'.
</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_s" id="flag_s">S|skip</a></h2>
<p>Le drapeau [S] sert &#224; sauter des r&#232;gles que vous ne voulez pas voir
ex&#233;cuter. La syntaxe du drapeau skip est [S=<em>N</em>], o&#249;
<em>N</em> correspond au nombre de r&#232;gles &#224; sauter (sous
r&#233;serve que la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> corresponde).
Ceci peut s'interpr&#233;ter comme une instruction
<code>goto</code> dans votre jeu de r&#232;gles de r&#233;&#233;criture. Dans
l'exemple suivant, nous ne voulons ex&#233;cuter la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> que si l'URI demand&#233; ne
correspond pas &#224; un fichier existant.</p>
<div class="example"><p><code>
# La requ&#234;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&#232;gles de r&#233;&#233;criture suivantes<br />
RewriteRule .? - [S=2]<br />
RewriteRule (.*\.gif) images.php?$1<br />
RewriteRule (.*\.html) docs.php?$1
</code></p></div>
<p>Cette technique trouve son utilit&#233; dans le fait qu'une directive
<code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ne s'applique
qu'&#224; la r&#232;gle qui la suit imm&#233;diatement. Ainsi, si vous voulez
qu'une directive <code>RewriteCond</code> s'applique &#224; plusieurs r&#232;gles
<code>RewriteRule</code>, une technique possible consiste &#224; inverser ces
conditions et &#224; ajouter une <code>RewriteRule</code> avec le drapeau [Skip]. Cette technique permet
d'&#233;laborer des pseudo-constructions if-then-else : la derni&#232;re r&#232;gle du
bloc then contiendra <code>skip=N</code>, o&#249; N est le nombre de r&#232;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 />
# 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>
# ELSE...
<span class="indent">
RewriteRule (.*) 404.php?file=$1<br />
</span>
# END
</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="flag_t" id="flag_t">T|type</a></h2>
<p>D&#233;finit le type MIME de la r&#233;ponse r&#233;sultante renvoy&#233;e. L'effet est
identique &#224; celui de la directive <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code>.</p>
<p>Par exemple, vous pouvez utiliser la technique suivante pour servir
du code source Perl en tant que plein texte, s'il est requis d'une
certaine mani&#232;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>
<p>Ou encore, si vous poss&#233;dez une cam&#233;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>
<p>Notez cependant qu'il s'agit d'un exemple trivial, et que le probl&#232;me
aurait pu &#234;tre r&#233;solu en utilisant &#224; la place la directive <code class="directive"><a href="../mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code>. Il faut toujours
envisager la possibilit&#233; d'une solution alternative &#224; un probl&#232;me avant
d'avoir recours &#224; la r&#233;&#233;criture, qui sera toujours moins efficace qu'une
solution alternative.</p>
<p>
Dans un contexte de niveau r&#233;pertoire, n'utilisez que <code>-</code>
(tiret) comme substitution, <em>dans toute la s&#233;quence de r&#233;&#233;criture de
mod_rewrite</em>, sinon le type MIME d&#233;fini avec ce drapeau
sera perdu suite &#224; un retraitement interne (y compris les s&#233;quences de
r&#233;&#233;criture suivantes de mod_rewrite). Dans ce contexte, vous pouvez
utiliser le drapeau <code>L</code> pour terminer la s&#233;quence
<em>courante</em> de r&#233;&#233;criture de mod_rewrite.</p>
</div></div>
<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&#231;ais">&nbsp;fr&nbsp;</a></p>
</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 Libera.chat, 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.2/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 2018 The Apache Software Foundation.<br />Autoris&#233; 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>