diff options
Diffstat (limited to '')
-rw-r--r-- | docs/manual/rewrite/flags.html.fr.utf8 | 159 |
1 files changed, 109 insertions, 50 deletions
diff --git a/docs/manual/rewrite/flags.html.fr.utf8 b/docs/manual/rewrite/flags.html.fr.utf8 index e9d84e0..073e46d 100644 --- a/docs/manual/rewrite/flags.html.fr.utf8 +++ b/docs/manual/rewrite/flags.html.fr.utf8 @@ -88,13 +88,7 @@ d'utilisation.</p> <div class="section"> <h2><a name="flag_b" id="flag_b">B (échappement dans les références arrières)</a></h2> <p>Avec le drapeau [B], la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> échappe les caractères -non-alphanumériques avant d'appliquer la transformation. A partir -de la version 2.4.26, vous pouvez limiter l'échappement dans les -références arrières à une liste de caractères que vous pouvez spécifiez comme -dans cet exemple : <code>[B=#?;]</code>. Notez que l'espace peut faire -partie de la liste des caractères à échapper, mais qu'il ne doit pas -être le dernier caractère de cette liste. -</p> +non-alphanumériques avant d'appliquer la transformation.</p> <p><code>mod_rewrite</code> doit supprimer les séquences d'échappement des URLs avant leur @@ -104,6 +98,9 @@ ces dernières sont appliquées. Avec le drapeau B, les caractères non-alphanumériques des références arrières seront échappés. Considérons par exemple cette règle :</p> +<p>Pour un échappement similaire des variables du serveur, voir la <a href="#mapfunc">fonction de mappage</a> "escape". +</p> + <pre class="prettyprint lang-config">RewriteRule "^search/(.*)$" "/search.php?term=$1"</pre> @@ -138,6 +135,22 @@ si on présente à ce dernier une URL non échappée.</p> %{THE_REQUEST}, les chaînes capturées se présentant alors sous la forme codée.</p> +<p>A partir +de la version 2.4.26, vous pouvez limiter l'échappement dans les +références arrières à une liste de caractères que vous pouvez spécifiez comme +dans cet exemple : <code>[B=#?;]</code>. Notez que l'espace peut faire +partie de la liste des caractères à échapper, mais que vous devez mettre entre +guillemets le troisième argument de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> et que l'espace ne doit pas +être le dernier caractère de cette liste. +</p> + +<pre class="prettyprint lang-config"># Échappement des espaces et des points d'interrogation. Les guillemets autour +# du dernier argument sont obligatoires lorsque l'espace est inclus. +RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B= ?]"</pre> + + +<p>Pour définir la liste des caractères à échapper de cette manière, voir <a href="#flag_bne">#flag_bne</a> et <a href="#flag_bctls">#flag_bctls</a></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_bnp" id="flag_bnp">BNP|backrefnoplus (ne pas échapper @@ -147,9 +160,43 @@ espace en %20 au lieu de '+' dans les références arrières. Ceci s'avère utile lorsque la référence arrière est utilisée dans la partie chemin, et non dans les paramètres de la requête.</p> +<pre class="prettyprint lang-config"># Échappe le caractère espace en %20 dans le chemin au lieu de + comme dans la +# soumission de formulaire à l'aide de la chaîne de paramètres +RewriteRule "^search/(.*)$" "/search.php/$1" "[B,BNP]"</pre> + + <p>Ce drapeau est disponible à partir de la version 2.4.26 du serveur HTTP Apache.</p> +<h3><a name="flag_bctls" id="flag_bctls">BCTLS</a></h3> +<p>Le drapeau [BCTLS] est similaire à [B], à la différence que seuls les espaces +et les caractères de contrôle sont échappés. Il s'agit du même jeu de caractères +rejetés lorsqu'ils sont copiés dans la chaîne de paramètres non codée. +</p> + +<pre class="prettyprint lang-config"># Échappe les espaces et les caractères de contrôle +RewriteRule "^search/(.*)$" "/search.php/$1" "[BCTLS]"</pre> + + +<p>Ce drapeau est disponible à partir de la version 2.4.57 du serveur HTTP +Apache.</p> + + + +<h3><a name="flag_bne" id="flag_bne">BNE</a></h3> +<p>Les caractères listés dans [BNE=...] sont exclus des listes de caractères +correspondant aux drapeaux [B] ou [BCTLS]. Ils ne seront donc pas échappés. +</p> + +<pre class="prettyprint lang-config"># Échappe les caractères par défaut, sauf / +RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B,BNE=/]"</pre> + + +<p>Ce drapeau est disponible à partir de la version 2.4.57 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_c" id="flag_c">C|chain</a></h2> @@ -165,13 +212,13 @@ chaînées qui suivent, seront sautées.</p> <p>Le drapeau [CO], ou [cookie], vous permet de définir un cookie lorsqu'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> s'applique. Il possède trois arguments obligatoires et -quatre arguments optionnels.</p> +cinq arguments optionnels.</p> <p>La syntaxe complè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] +[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly:samesite] </code></p></div> <p>Si un caractère littéral ':' doit être insérer dans un des champs du @@ -180,7 +227,7 @@ 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] +[CO=;NAME;VALUE:MOREVALUE;DOMAIN;lifetime;path;secure;httponly;samesite] </code></p></div> <p>Vous devez déclarer un nom, une valeur et un domaine pour que @@ -223,12 +270,18 @@ que dans le cadre d'une connexion sécurisée (https).</dd> <code>HttpOnly</code> activé, ce qui signifie qu'il sera inaccessible au code JavaScript pour les navigateurs qui supportent cette fonctionnalité.</dd> + +<dt>samesite</dt> +<dd>S'il est différent de <code>false</code> ou <code>0</code>, l'attribut +<code>SameSite</code> est défini à la valeur spécifiée. Les valeurs typiques +sont <code>None</code>, <code>Lax</code> et <code>Strict</code>. Disponible à +partir de la version 2.4.47 du serveur HTTP Apache.</dd> </dl> <p>Voici un exemple :</p> <pre class="prettyprint lang-config">RewriteEngine On -RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.org:1440:/]</pre> +RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.com:1440:/]</pre> <p>Dans l'exemple ci-dessus, la règle ne réécrit @@ -315,10 +368,9 @@ avec une valeur de '1' si l'URI de la requête correspond à un fichier image. Cette variable d'environnement est ensuite utilisée pour exclure 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 -</code></p></div> +<pre class="prettyprint lang-config">RewriteRule "\.(png|gif|jpg)$" "-" [E=image:1] +CustomLog "logs/access_log" combined env=!image</pre> + <p>Notez que le même effet peut être obtenu à l'aide de la directive <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. Cette technique @@ -345,7 +397,7 @@ Forbidden.</p> <p>La règle suivante va interdire la téléchargement de fichiers <code>.exe</code> depuis votre serveur.</p> -<pre class="prettyprint lang-config">RewriteRule "\.exe" "-" [F]</pre> +<pre class="prettyprint lang-config">RewriteRule "\.exe" "-" [F]</pre> <p>Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce @@ -366,7 +418,7 @@ 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> -<pre class="prettyprint lang-config">RewriteRule "oldproduct" "-" [G,NC]</pre> +<pre class="prettyprint lang-config">RewriteRule "oldproduct" "-" [G,NC]</pre> <p>Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la @@ -380,7 +432,7 @@ spécifié. Par exemple, on peut utiliser ce drapeau pour forcer l'interprétation de tous les fichiers sans extension par le gestionnaire php :</p> -<pre class="prettyprint lang-config">RewriteRule "!\." "-" [H=application/x-httpd-php]</pre> +<pre class="prettyprint lang-config">RewriteRule "!\." "-" [H=application/x-httpd-php]</pre> <p> @@ -449,8 +501,8 @@ directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond"> 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> <pre class="prettyprint lang-config">RewriteBase "/" -RewriteCond "%{REQUEST_URI}" "!=/index.php" -RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]</pre> +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"> @@ -478,10 +530,10 @@ 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 +10000 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 "(.+)[><;]$" "$1" [N=64000] +RewriteRule "(.+)[><;]$" "$1" [N=32000] # ... ou s'arrêter après 10 itérations RewriteRule "(.+)[><;]$" "$1" [N=10]</pre> @@ -505,9 +557,9 @@ bien que <code>.JPG</code> seront acceptés.</p> <div class="section"> <h2><a name="flag_ne" id="flag_ne">NE|noescape</a></h2> <p>Par défaut, les caractères spéciaux, comme <code>&</code> et -<code>?</code>, sont convertis en leur équivalent -hexadécimal. Le drapeau [NE] permet d'éviter cette conversion. -</p> +<code>?</code>, sont convertis en leur équivalent hexadécimal pour les règles +qui génèrent des redirections externes. Le drapeau [NE] permet d'éviter cette +conversion.</p> <pre class="prettyprint lang-config">RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]</pre> @@ -583,13 +635,17 @@ local.</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 et la réutilisation des connexions.</p> - <p>Partout où cela est possible, préférez l'utilisation de ces directives.</p> + <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 car dans ce cas, c'est le worker par + défaut qui est utilisé, et ce dernier ne gère pas la mise en commun et la + réutilisation des connexions.</p> + <p>Pour utiliser les connexions persistantes, vous devez définir un bloc + <code class="directive"><a href="../mod/mod_proxy.html#proxy">Proxy</a></code>, au moins pour les parties + protocole et hôte de l'URL cible, et contenant une directive <code class="directive"><a href="../mod/mod_proxy.html#proxyset">ProxySet</a></code> où vous définissez par exemple un + délai.</p> + <p>Si vous le définissez avec une directive <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>, les connexions persistantes + seront automatiquement utilisées.</p> </div> <p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour pouvoir @@ -739,19 +795,21 @@ avertissements 'Invalid URI in request'. <p>Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir 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). +réserve que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> corresponde et qu'au moins +une condition <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> +préalable soit vérifiée). 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" +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 ".?" "-" [S=2] -RewriteRule "(.*\.gif)" "images.php?$1" -RewriteRule "(.*\.html)" "docs.php?$1"</pre> +RewriteRule "(.*\.gif)" "images.php?$1" +RewriteRule "(.*\.html)" "docs.php?$1"</pre> @@ -766,18 +824,19 @@ 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> <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] +RewriteCond "%{REQUEST_FILENAME}" !-f +RewriteCond "%{REQUEST_FILENAME}" !-d +# Créer une structure conditionnelle if-then-else en sautant 3 lignes si nous +# avions l'intention d'aller au bloc "else". +RewriteRule ".?" "-" [S=3] # Si le fichier existe, alors : -RewriteRule "(.*\.gif)" "images.php?$1" + RewriteRule "(.*\.gif)" "images.php?$1" RewriteRule "(.*\.html)" "docs.php?$1" - # Skip past the "else" stanza. - RewriteRule ".?" "-" [S=1] + # Passer le bloc "else". + RewriteRule ".?" "-" [S=1] # ELSE... -RewriteRule "(.*)" "404.php?file=$1 + RewriteRule "(.*)" "404.php?file=$1" # END</pre> @@ -795,7 +854,7 @@ du code source Perl en tant que plein texte, s'il est requis d'une certaine manière :</p> <pre class="prettyprint lang-config"># Sert les fichier .pl en tant que plein texte -RewriteRule "\.pl$" "-" [T=text/plain]</pre> +RewriteRule "\.pl$" "-" [T=text/plain]</pre> <p>Ou encore, si vous possédez une caméra qui produit des fichiers @@ -803,7 +862,7 @@ 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> <pre class="prettyprint lang-config"># Les fichiers dont le nom contient 'IMG' sont des images jpg. -RewriteRule "IMG" "-" [T=image/jpg]</pre> +RewriteRule "IMG" "-" [T=image/jpg]</pre> <p>Notez cependant qu'il s'agit d'un exemple trivial, et que le problème @@ -825,7 +884,7 @@ utiliser le drapeau <code>L</code> pour terminer la séquence <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/flags.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/rewrite/flags.html" title="Français"> fr </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&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> +</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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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="https://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'; @@ -843,7 +902,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/2.4/rewrite/flags.html'; } })(window, document); //--><!]]></script></div><div id="footer"> -<p class="apache">Copyright 2019 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="apache">Copyright 2024 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(); |