mod_rewrite.xml.fr revision 694390dc2444235cbd378d1c2711d5b698cf95cc
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<!-- English Revision: 1664575:1668875 (outdated) -->
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<!-- French translation : Lucien GENTIS -->
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<!-- Reviewed by : Vincent Deffontaines -->
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Licensed to the Apache Software Foundation (ASF) under one or more
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor contributor license agreements. See the NOTICE file distributed with
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen this work for additional information regarding copyright ownership.
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen The ASF licenses this file to You under the Apache License, Version 2.0
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen (the "License"); you may not use this file except in compliance with
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen the License. You may obtain a copy of the License at
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Unless required by applicable law or agreed to in writing, software
3f08db06526d6901aa08c110b5bc7dde6bc39905nd distributed under the License is distributed on an "AS IS" BASIS,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor See the License for the specific language governing permissions and
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor limitations under the License.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<description>Ce module fournit un moteur de réécriture à base de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorrègles permettant de réécrire les URLs des requêtes
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorà la volée</description>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Le module <module>mod_rewrite</module> utilise un moteur de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen réécriture à base de règles, basé sur un interpréteur
b71e5eae594d54e9e56dc20208c6a7fb52610e29rbowen d'expressions rationnelles PCRE, pour réécrire les URLs à la volée. Par
c867dba1041640ecec7c8194d35a5b4ffce442earbowen défaut, <module>mod_rewrite</module> met en correspondance une URL
c867dba1041640ecec7c8194d35a5b4ffce442earbowen avec le système de fichiers. Cependant, on peut aussi l'utiliser
c867dba1041640ecec7c8194d35a5b4ffce442earbowen pour rediriger une URL vers une autre URL, ou pour invoquer une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen requête interne à destination du mandataire.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p><module>mod_rewrite</module> fournit une méthode souple et
c867dba1041640ecec7c8194d35a5b4ffce442earbowen puissante pour manipuler les URLs en utilisant un nombre illimité
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de règles. Chaque règle peut être associée à un nombre illimité de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen conditions, afin de vous permettre de réécrire les URLs en
c867dba1041640ecec7c8194d35a5b4ffce442earbowen fonction de variables du serveur, de variables d'environnement,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen d'en-têtes HTTP, ou de repères temporels.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p><module>mod_rewrite</module> agit sur la totalité de l'URL, y
c867dba1041640ecec7c8194d35a5b4ffce442earbowen compris la partie chemin. Une règle de réécriture peut être
c867dba1041640ecec7c8194d35a5b4ffce442earbowen invoquée dans <code>httpd.conf</code> ou dans un fichier
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>.htaccess</code>. Le chemin généré par une règle de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen réécriture peut inclure une chaîne de paramètres, ou peut renvoyer
c867dba1041640ecec7c8194d35a5b4ffce442earbowen vers un traitement secondaire interne, une redirection vers une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen requête externe ou vers le mandataire interne.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Vous trouverez d'avantage de détails, discussions et exemples
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <a href="/rewrite/">documentation détaillée
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p><module>mod_rewrite</module> offre une journalisation détaillée
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de ses actions aux niveaux de journalisation <code>trace1</code> à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>trace8</code>. Le niveau de journalisation peut être défini de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor manière spécifique à <module>mod_rewrite</module> via la directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <directive module="core">LogLevel</directive> : jusqu'au niveau
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>debug</code> aucune action n'est journalisée, alors qu'elles
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor le sont pratiquement toutes au niveau <code>trace8</code>.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor L'utilisation d'un niveau de journalisation élevé pour
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <module>mod_rewrite</module> va ralentir votre serveur HTTP Apache
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de manière dramatique ! N'utilisez un niveau de journalisation
c867dba1041640ecec7c8194d35a5b4ffce442earbowen supérieur à <code>trace2</code> qu'à des fins de débogage !
c867dba1041640ecec7c8194d35a5b4ffce442earbowen LogLevel alert rewrite:trace3
c867dba1041640ecec7c8194d35a5b4ffce442earbowen </highlight>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Ceux qui sont familiers avec les versions précédentes de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <module>mod_rewrite</module> vont probablement rechercher en vain les
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>RewriteLogLevel</code>. Elles ont été en effet remplacées
c867dba1041640ecec7c8194d35a5b4ffce442earbowen par une configuration de la journalisation par module, comme
c867dba1041640ecec7c8194d35a5b4ffce442earbowen mentionné plus haut.
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Pour extraire les traces spécifiques à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <module>mod_rewrite</module>, affichez le fichier journal en
c867dba1041640ecec7c8194d35a5b4ffce442earbowen redirigeant la sortie vers grep :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen tail -f error_log|fgrep '[rewrite:'
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<directivesynopsis>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<description>Active ou désactive l'exécution du
c867dba1041640ecec7c8194d35a5b4ffce442earbowenmoteur de réécriture</description>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<contextlist><context>server config</context><context>virtual host</context>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<context>directory</context><context>.htaccess</context></contextlist>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>La directive <directive>RewriteEngine</directive> active ou
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor désactive l'exécution du moteur de réécriture. Si sa valeur est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>off</code>, ce module n'exécutera aucun traitement et ne
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor mettra pas à jour les variables d'environnement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Plutôt que de commenter toutes les directives <directive
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen module="mod_rewrite">RewriteRule</directive>, il est préférable
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'utiliser cette directive si l'on souhaite désactiver les
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règles de réécriture dans un contexte particulier.</p>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd <p>Notez que les hôtes virtuels n'héritent pas des
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd configurations de réécriture. Ceci implique que vous devez
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd insérer une directive <code>RewriteEngine on</code> dans chaque
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd hôte virtuel pour lequel vous souhaitez utiliser des règles
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd de réécriture.</p>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd <p>Les directives <directive>RewriteMap</directive> du type
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd <code>prg</code> ne sont pas prises en compte au cours de
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd l'initialisation du serveur si elle ont été définies dans un
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd contexte où la directive <directive>RewriteEngine</directive> n'a
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd pas été définie à <code>on</code>.</p>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd</directivesynopsis>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd<directivesynopsis>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd<description>Configure certaines options spéciales
c867dba1041640ecec7c8194d35a5b4ffce442earbowenpour le moteur de réécriture</description>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd<contextlist><context>server config</context><context>virtual host</context>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd<context>directory</context><context>.htaccess</context></contextlist>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <p>La directive <directive>RewriteOptions</directive> définit
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor certaines options spéciales pour la configuration au niveau du
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd serveur ou du répertoire. La chaîne de caractères <em>Option</em>
16055ce2030d5a9ab3b1797dfe4ba2c1177a6af9nd ne peut actuellement prendre qu'une des valeurs suivantes :</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Ceci force la configuration locale à hériter de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor configuration du niveau supérieur. Dans le contexte des hôtes
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor virtuels, cela signifie que les correspondances, conditions et
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règles du serveur principal sont héritées. Dans le contexte des
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor répertoires, cela signifie que les conditions et règles de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor configuration <code>.htaccess</code> ou les sections <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor type="section" module="core">Directory</directive> du répertoire
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor parent sont héritées. Les règles héritées sont virtuellement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor copiées dans la section où cette directive est utilisée. Si elles
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sont utilisées avec des règles locales, les règles héritées sont
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor placées après ces dernières. La place de cette directive - avant
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ou après les règles locales - n'a aucune influence sur ce
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen comportement. Si des règles locales ont forcé l'arrêt de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor réécriture, les règles héritées ne seront pas traitées.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Les règles héritées du niveau parent sont appliquées
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong>after</strong> après les règles spécifiées dans le niveau
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Même effet que l'option <code>Inherit</code> ci-dessus, mais
c867dba1041640ecec7c8194d35a5b4ffce442earbowen les règles spécifiées dans le niveau parent s'appliquent
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <strong>avant</strong> les règles spécifiées dans le niveau
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor enfant.<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Disponible depuis la version 2.3.10 du serveur HTTP Apache.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Si cette option est activée, toutes les configurations enfants
c867dba1041640ecec7c8194d35a5b4ffce442earbowen hériteront de la configuration courante. Il en est de même si l'on
c867dba1041640ecec7c8194d35a5b4ffce442earbowen spécifie <code>RewriteOptions Inherit</code> dans toutes les
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor configurations enfants. Voir l'option <code>Inherit</code> pour
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor plus de détails à propos de la manière dont les relations
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor parent-enfants sont traitées.<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Cette option est disponible à partir
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de la version 2.4.8 du serveur HTTP Apache.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>L'effet de cette option est équivalent à celui de l'option
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>InheritDown</code> ci-dessus, mais les règles de la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen configuration parente s'appliquent <strong>avant</strong> toute
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règle de la configuration enfant.<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Cette option est disponible à partir
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de la version 2.4.8 du serveur HTTP Apache.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Si cette option est activée, les configurations courante et
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor enfants ignoreront toute règle héritée d'une configuration parente
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Cette option est disponible à partir
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de la version 2.4.8 du serveur HTTP Apache.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Par défaut, <module>mod_rewrite</module> ignore les URLs qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor correspondent à un répertoire sur disque, mais ne comportent pas
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de slash final, afin que le module <module>mod_dir</module>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor redirige le client vers l'URL canonique avec un slash final.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="mod_dir">DirectorySlash</directive> est définie à off, il
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor est possible de spécifier l'option <code>AllowNoSlash</code> pour
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor s'assurer que les règles de réécriture ne soient plus ignorées.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Si on le souhaite, cette option permet de faire s'appliquer des
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règles de réécriture qui correspondent à un répertoire sans slash
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor final au sein de fichiers .htaccess.<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Elle est disponible à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor partir de la version 2.4.0 du serveur HTTP Apache.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>A partir de la version 2.2.22 de httpd, lorsqu'une directive <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="mod_rewrite">RewriteRule</directive> se situe dans un
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor contexte de <code>serveur virtuel</code> ou de serveur principal,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <module>mod_rewrite</module> ne traitera les règles de réécriture
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor que si l'URI de la requête respecte la syntaxe d'un <a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="directive-dict.html#Syntax">chemin URL</a>. Ceci permet
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'éviter certains problèmes de sécurité où des règles
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor particulières pourraient permettre des développements de modèles
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor inattendus (voir <a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3368">CVE-2011-3368</a>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4317">CVE-2011-4317</a>).
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Pour s'affranchir de la restriction relative à la syntaxe des chemins URL, on peut
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor utiliser l'option <code>AllowAnyURI</code>, afin de permettre à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <module>mod_rewrite</module> d'appliquer le jeu de règles à toute
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor chaîne de requête URI, sans vérifier si cette dernière respecte la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor grammaire des chemins URL définie dans la spécification HTTP.<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Disponible depuis la version 2.4.3 du serveur HTTP Apache.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <title>Avertissement à propos de la sécurité</title>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>L'utilisation de cette option rendra le serveur vulnérable à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor certains problèmes de sécurité si les règles de réécritures
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor concernées n'ont pas été rédigées avec soin. Il est par conséquent
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <strong>fortement recommandé</strong> de ne pas utiliser cette
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor option. En particulier, prêtez attention aux chaînes en entrée contenant le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor caractère '<code>@</code>', qui peuvent modifier l'interprétation
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de l'URI réécrite, comme indiqué dans les liens ci-dessus.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Avec cette option, la valeur de la directive <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="mod_rewrite">RewriteBase</directive> est recopiée depuis
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic une valeur explicitement définie dans tout sous-répertoire qui ne
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor définit pas sa propre directive <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="mod_rewrite">RewriteBase</directive>. Il s'agissait du
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comportement par défaut avec les versions 2.4.0 à 2.4.3, et ce
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf drapeau qui permet de retrouver ce comportement est disponible
c867dba1041640ecec7c8194d35a5b4ffce442earbowen depuis la version 2.4.4 du serveur HTTP Apache.</p>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Dans les versions 2.4.11 et antérieures, lors d'une
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic substitution relative dans un contexte de répertoire (htaccess),
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf et si la directive <directive
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic module="mod_rewrite">RewriteBase</directive> n'a pas été définie,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ce module utilise des informations en provenance d'une extension
c867dba1041640ecec7c8194d35a5b4ffce442earbowen d'URL et du contexte du système de fichiers pour transformer la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sustitution relative en URL. Par exemple, les modules
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <module>mod_userdir</module> et <module>mod_alias</module>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor utilisent ces informations de contexte étendu. Cette option
c867dba1041640ecec7c8194d35a5b4ffce442earbowen désactive le comportement introduit avec la version 2.4.11, et ne
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor doit être utilisée que si toutes les conditions précédentes sont
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor vérifiées, et si la substitution renvoie un résultat inattendu.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen</directivesynopsis>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<directivesynopsis>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<description>Définit une fonction de mise en correspondance pour la
c867dba1041640ecec7c8194d35a5b4ffce442earbowenrecherche de mots-clés</description>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<syntax>RewriteMap <em>nom de la correspondance</em> <em>type de
c867dba1041640ecec7c8194d35a5b4ffce442earbowencorrespondance</em>:<em>source de la correspondance</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<contextlist><context>server config</context><context>virtual host</context>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</contextlist>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>La directive <directive>RewriteMap</directive> définit une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>Table de correspondance pour la réécriture</em> que les
53cf0034f617fdca55a345580e13afd88000e9ccjim fonctions de mise en correspondance
53cf0034f617fdca55a345580e13afd88000e9ccjim peuvent utiliser dans les chaînes de substitution des règles
53cf0034f617fdca55a345580e13afd88000e9ccjim pour insérer/substituer des champs en recherchant des mots-clés.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor La source utilisée pour cette recherche peut être de plusieurs
2b6565aedca9e9c10691b12fd2f3689bf4c85bc7jim correspondance</em></a> est le nom de la table de correspondance
2b6565aedca9e9c10691b12fd2f3689bf4c85bc7jim et servira à spécifier une fonction de mise en correspondance
2b6565aedca9e9c10691b12fd2f3689bf4c85bc7jim pour les chaînes de substitution d'une règle de réécriture selon
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor une des constructions suivantes :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>mot-clé</em> <code>|</code> <em>valeur par défaut</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Lorsqu'une telle construction est rencontrée, la table de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondance <em>Nom de la correspondance</em> est consultée
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor et la clé <em>mot-clé</em> recherchée. Si la clé est trouvée, la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen construction est remplacée par
c867dba1041640ecec7c8194d35a5b4ffce442earbowen la <em>valeur de remplacement</em>. Si la clé n'est pas trouvée,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor elle est remplacée par la <em>valeur par défaut</em>, ou par une
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic chaîne vide si aucune <em>valeur par défaut</em> n'est
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic spécifiée. La valeur vide se comporte comme si la
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic clé était absente ; il est donc impossible de distinguer une
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic valeur vide d'une absence de clé.</p>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Par exemple, vous pouvez définir une directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor </highlight>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Vous pourrez ensuite utiliser cette table dans une
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic directive <directive>RewriteRule</directive> comme suit :</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor RewriteRule ^/ex/(.*) ${map-exemple:$1}
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor </highlight>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>La signification de l'argument <em>options du type de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondance</em> dépend du <em>type de correspondance</em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen spécifié. Veuillez vous référer au document <a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/rewritemap.html">Utiliser RewriteMap</a> pour
c867dba1041640ecec7c8194d35a5b4ffce442earbowen plus de détails.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Les combinaisons suivantes pour <em>type de correspondance</em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen peuvent être utilisées :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Un fichier texte contenant des paires clé-valeur séparées
c867dba1041640ecec7c8194d35a5b4ffce442earbowen par des espaces, une paire par ligne (<a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/rewritemap.html#txt">Détails ...</a>).</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Sélection aléatoire d'une entrée depuis un fichier texte (<a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/rewritemap.html#rnd">Détails ...</a>).</dd>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>Recherche une entrée dans un fichier dbm contenant des
c867dba1041640ecec7c8194d35a5b4ffce442earbowen paires nom-valeur. Le condensé hash est élaboré à partir d'un
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/programs/httxt2dbm.html">httxt2dbm</a></code> (<a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/rewritemap.html#dbm">Détails ...</a>).</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Une des quatre fonctions internes disponibles que fournit
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>RewriteMap</code>: toupper, tolower, escape ou unescape
c867dba1041640ecec7c8194d35a5b4ffce442earbowen (<a href="/rewrite/rewritemap.html#int">Détails ...</a>).</dd>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>Appelle un programme externe ou un script pour effectuer la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor réécriture (<a href="/rewrite/rewritemap.html#prg">Détails
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Une commande SQL SELECT à exécuter pour rechercher la cible
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de réécriture (<a href="/rewrite/rewritemap.html#dbd">Détails
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<p>Vous trouverez plus de détails et de nombreux exemples dans le <a
c867dba1041640ecec7c8194d35a5b4ffce442earbowenhref="/rewrite/rewritemap.html">RewriteMap HowTo</a>.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen</directivesynopsis>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<directivesynopsis>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<description>Définit l'URL de base pour les réécritures au niveau
c867dba1041640ecec7c8194d35a5b4ffce442earbowenrépertoire</description>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen<contextlist><context>directory</context><context>.htaccess</context>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen</contextlist>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>La directive <directive>RewriteBase</directive> permet de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen spécifier le préfixe d'URL à utiliser dans un contexte de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen répertoire (htaccess) pour les directives
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <directive>RewriteRule</directive> qui réécrivent vers un chemin
c867dba1041640ecec7c8194d35a5b4ffce442earbowen relatif.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Cette directive est <em>obligatoire</em> si vous utilisez un
c867dba1041640ecec7c8194d35a5b4ffce442earbowen chemin relatif dans une substitution, et dans un contexte de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen répertoire (htaccess), sauf si au moins une de ces conditions est
c867dba1041640ecec7c8194d35a5b4ffce442earbowen vérifiée :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>La requête initiale, ainsi que la substitution, se
c867dba1041640ecec7c8194d35a5b4ffce442earbowen situent par raport à la valeur de la directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <directive module="core">DocumentRoot</directive> (c'est à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen dire que pour y accéder, il n'est pas nécessaire d'utiliser
c867dba1041640ecec7c8194d35a5b4ffce442earbowen une directive telle qu'<directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>Le chemin du système de fichiers vers le répertoire
c867dba1041640ecec7c8194d35a5b4ffce442earbowen contenant la <directive>RewriteRule</directive>, suffixé par
c867dba1041640ecec7c8194d35a5b4ffce442earbowen la substitution relative est aussi valide en tant qu'URL sur
c867dba1041640ecec7c8194d35a5b4ffce442earbowen le serveur (ce qui est rare).</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>A partir de la version 2.4.11 du serveur HTTP Apache,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen cette directive peut être omise lorsque la requête est mise en
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondance avec le système de fichiers via la directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <directive module="mod_alias">Alias</directive> ou le module
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf<p>Dans l'exemple ci-dessous, la directive
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf<directive>RewriteBase</directive> est nécessaire afin d'éviter une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorréécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorressource n'était pas relative à la racine des documents. Cette erreur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorde configuration aurait conduit le serveur à rechercher un répertoire
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor"opt" à la racine des documents.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen RewriteEngine On
c867dba1041640ecec7c8194d35a5b4ffce442earbowen RewriteBase /myapp/
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor RewriteRule ^index\.html$ welcome.html
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</Directory>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</highlight>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen</directivesynopsis>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<directivesynopsis>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<description>Définit une condition qui devra être satisfaite pour que
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorla réécriture soit effectuée
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</description>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<syntax> RewriteCond
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>chaîne_de_test</em> <em>expression_de_comparaison</em></syntax>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<contextlist><context>server config</context><context>virtual host</context>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<context>directory</context><context>.htaccess</context></contextlist>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>La directive <directive>RewriteCond</directive> permet de définir une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor condition d'exécution d'une règle. Une ou plusieurs conditions
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <directive>RewriteCond</directive> peuvent précéder une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor >RewriteRule</directive>. La règle de réécriture correspondante n'est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ainsi exécutée que si ces conditions sont satisfaites,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <strong>et</strong> si l'URI correspond au modèle spécifié dans la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règle.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p><em>TestString</em> est une chaîne qui peut contenir les
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor extensions suivantes en plus du texte simple :</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <strong>références arrières de règle de réécriture</strong> :
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ce sont des références arrières de la forme
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <strong><code>$N</code></strong> (0 <= N <= 9). $1 à $9
c867dba1041640ecec7c8194d35a5b4ffce442earbowen permettent d'accéder aux parties regroupées (entre
c867dba1041640ecec7c8194d35a5b4ffce442earbowen parenthèses) du modèle, issues de la <code>RewriteRule</code>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen concernée par le jeu de conditions <code>RewriteCond</code>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen courant. $0 donne accès à l'ensemble de la chaîne
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondant au modèle.</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong>Références arrières de condition de réécriture
c867dba1041640ecec7c8194d35a5b4ffce442earbowen </strong> : ce sont des références arrières de la forme
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong><code>%N</code></strong> (0 <= N <= 9). %1 à %9
c867dba1041640ecec7c8194d35a5b4ffce442earbowen permettent d'accéder aux parties regroupées (entre
c867dba1041640ecec7c8194d35a5b4ffce442earbowen parenthèses) du modèle, issues de la dernière
c867dba1041640ecec7c8194d35a5b4ffce442earbowen condition <code>RewriteCond</code> satisfaite du jeu de conditions <code>RewriteCond</code>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen courant. %0 donne accès à l'ensemble de la chaîne
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondant au modèle.</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong>extensions de table de réécriture</strong> :
c867dba1041640ecec7c8194d35a5b4ffce442earbowen >${nomTable:clé|défaut}</code></strong>. Voir la <a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen >href="#mapfunc">documentation sur RewriteMap</a>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen pour plus de détails.
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ce sont des variables de la forme
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong><code>%{</code> <em>NAME_OF_VARIABLE</em> <code>}</code></strong>,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen où <em>NOM_DE_VARIABLE</em> peut contenir une chaîne issue
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de la liste suivante :
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <th>En-têtes HTTP :</th> <th>connexion & requête:</th> <th></th>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_ACCEPT<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_COOKIE<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_FORWARDED<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_HOST<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_PROXY_CONNECTION<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_REFERER<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP_USER_AGENT<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen AUTH_TYPE<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen CONN_REMOTE_ADDR<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen CONTEXT_PREFIX<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen CONTEXT_DOCUMENT_ROOT<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen PATH_INFO<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen QUERY_STRING<br />
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf REMOTE_ADDR<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REMOTE_HOST<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REMOTE_IDENT<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REMOTE_PORT<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REMOTE_USER<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REQUEST_METHOD<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen SCRIPT_FILENAME<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <th>variables internes au serveur :</th> <th>date et heure :</th> <th>spéciaux :</th>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor DOCUMENT_ROOT<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SCRIPT_GROUP<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SCRIPT_USER<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_ADDR<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_ADMIN<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_NAME<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_PORT<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_PROTOCOL<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor SERVER_SOFTWARE<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_YEAR<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_MON<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_DAY<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_HOUR<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_MIN<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_SEC<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor TIME_WDAY<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen API_VERSION<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen CONN_REMOTE_ADDR<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTPS<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen IS_SUBREQ<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REMOTE_ADDR<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REQUEST_FILENAME<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REQUEST_SCHEME<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen REQUEST_URI<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen THE_REQUEST<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Ces variables correspondent toutes aux en-têtes MIME
c867dba1041640ecec7c8194d35a5b4ffce442earbowen HTTP de mêmes noms, au variables C du serveur HTTP Apache, ou
c867dba1041640ecec7c8194d35a5b4ffce442earbowen aux champs <code>struct tm</code> du système Unix. La
c867dba1041640ecec7c8194d35a5b4ffce442earbowen plupart d'entre elles sont documentées <a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor spécification CGI ou ailleurs dans le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor manuel.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>SERVER_NAME et SERVER_PORT dépendent respectivement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor des valeurs des directives <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="core">UseCanonicalName</directive> et <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="core">UseCanonicalPhysicalPort</directive>.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Parmi les variables
c867dba1041640ecec7c8194d35a5b4ffce442earbowen spécifiques à mod_rewrite, ou trouve les suivantes :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>C'est la version de l'API des modules Apache httpd
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor (l'interface interne entre le serveur et les modules)
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor pour la construction courante de httpd, telle qu'elle
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor est définie dans include/ap_mmn.h. La version de l'API
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor des modules correspond à la version du serveur Apache
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor utilisé (par exemple, pour la version 1.3.14 d'Apache
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic il s'agit de la version 19990320:10), mais intéresse
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic principalement les auteurs de modules.</dd>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <dd>A partir de la version 2.4.8 : l'adresse IP distante de
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic la connexion (voir le module
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <dd>Contient le texte "on" si la connexion
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic (Cette variable peut être utilisée sans problème, que
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <module>mod_ssl</module> soit chargé ou non).</dd>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>Contient le texte "true" si la requête en cours
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de traitement est une sous-requête, "false" dans le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor cas contraire. Une sous-requête est générée quand un
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module a besoin de se référer à des fichiers ou URIs
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor addidionnels pour pouvoir mener à bien sa tâche.</dd>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>L'adresse IP de l'hôte distant (se référer au
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>Le chemin complet local au système de fichiers
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor du fichier ou du script correspondant
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor à la requête, s'il a déjà été déterminé par le serveur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor au moment où on y fait référence. Dans le cas
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor contraire, et en particulier dans le cas d'un serveur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor valeur de <code>REQUEST_URI</code>. En fonction de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor valeur de la directive <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor peut n'utiliser que certains éléments de tête du
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>REQUEST_URI</code> pour déterminer à quel
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor fichier correspond la requête.</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Contient le protocole de la requête (en général
c867dba1041640ecec7c8194d35a5b4ffce442earbowen "http" ou "https"). La valeur peut être modifiée par
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor la directive <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>La partie chemin de l'URI de la requête, comme
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor "/index.html". Ceci exclut en particulier la chaîne de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor paramètres de la requête qui est contenue dans la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <dd>La ligne de requête HTTP complète envoyée par le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor navigateur au serveur (par exemple, "<code>GET
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor /index.html HTTP/1.1</code>"), à l'exclusion de tout
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor en-tête ajouté par le navigateur. Cette
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor valeur n'a pas été déséchappée (décodée), à la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor différence de la plupart des variables suivantes.</dd>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Si la <em>chaîne_de_test</em> contient la valeur spéciale
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>expr</code>, <em>expression_de_comparaison</em> sera traité
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor en tant qu'expression rationnelle de type <a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="/expr.html">ap_expr</a>. Si des en-têtes HTTP sont
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor référencés dans l'expression rationnelle, et si le drapeau
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>novary</code> n'est pas activé, ils seront ajoutés à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor l'en-tête Vary.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>REQUEST_FILENAME</code> contiennent toutes deux la valeur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor structure interne <code>request_rec</code>du serveur HTTP Apache.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Le premier nom correspond au nom de variable bien connu CGI,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor alors que le second est l'équivalent de REQUEST_URI (qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Si une substitution intervient et si la réécriture se
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor poursuit, la valeur des deux variables sera mise à jour en
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor conséquence.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Dans le contexte du serveur principal (c'est à dire avant que
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor la requête ne soit mise en correspondance avec le système de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor contenir le chemin entier dans le système de fichiers local car
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ce chemin b'est pas connu à ce stade du traitement. Dans ce cas,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor les deux variables contiendront la valeur de REQUEST_URI. Pour
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor obtenir le chemin complet de la requête dans le système de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor fichiers local dans le contexte du serveur principal, utilisez une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor référence avant à base d'URL
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{LA-U:REQUEST_FILENAME}</code> pour déterminer la valeur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{ENV:<em>variable</em>}</code>, où <em>variable</em> peut
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor correspondre à une variable d'environnement quelconque.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{ENV:variable}</code> est aussi disponible, où
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>variable</em> peut correspondre à toute variable
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'environnement. Peut être consulté via des structures internes
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'Apache httpd et (si on ne les trouve pas ici) via la fonction
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>getenv()</code> à partir du processus du serveur Apache
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor httpd.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>Que <module>mod_ssl</module> soit chargé ou non, on peut
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor utiliser <code>%{SSL:variable}</code>, où <em>variable</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor peut être remplacé par le nom d'une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'environnement SSL</a> . Si <module>mod_ssl</module> n'est pas
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor chargé, cette variable contiendra toujours une chaîne vide.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Exemple : <code>%{SSL:SSL_CIPHER_USEKEYSIZE}</code> pourra
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor On peut utiliser <code>%{HTTP:en-tête}</code>, où
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>en-tête</em> peut correspondre à tout nom d'en-tête MIME
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor HTTP, pour extraire la valeur d'un en-tête envoyé dans la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor requête HTTP. Par exemple, <code>%{HTTP:Proxy-Connection}</code>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor contiendra la valeur de l'en-tête HTTP
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Si on utilise un en-tête HTTP
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor dans une condition, et si cette condition est évaluée à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>vrai</code> pour la requête, cet en-tête sera ajouté à l'en-tête Vary de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor la réponse. Il ne le sera pas si la condition est évaluée à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>faux</code>. L'ajout de l'en-tête HTTP à l'en-tête Vary
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor est nécessaire à une mise en cache appropriée.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Il faut garder à l'esprit que les conditions suivent une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor logique de cout-circuit si le drapeau
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor '<strong><code>ornext|OR</code></strong>' est utilisé, et que de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ce fait, certaines d'entre elles ne seront pas évaluées.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>A des fins de référence avant, on peut utiliser,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a>, qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor permet d'effectuer une sous-requête interne à base d'URL, afin
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de déterminer la valeur finale de <em>variable</em>. Ceci permet
c867dba1041640ecec7c8194d35a5b4ffce442earbowen d'accéder à la valeur d'une variable pour la réécriture inconnue
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor à ce stade du traitement, mais qui sera définie au
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor cours d'une phase ultérieure.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Par exemple, pour effectuer une réécriture dépendant de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor variable <code>REMOTE_USER</code> dans le contexte du serveur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor principal (fichier <code>httpd.conf</code>), vous devez utiliser
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{LA-U:REMOTE_USER}</code> - cette variable est définie
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor par la phase d'autorisation qui intervient <em>après</em> la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor phase de traduction d'URL (pendant laquelle mod_rewrite opère).</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Par contre, comme mod_rewrite implémente son contexte de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor répertoire (fichier <code>.htaccess</code>) via la phase Fixup
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de l'API, et comme la phase d'autorisation intervient
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>avant</em> cette dernière, vous pouvez vous contenter
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'utiliser <code>%{REMOTE_USER}</code> dans ce contexte.</p></li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{LA-F:variable}</code> peut être utilisée pour effectuer
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor une sous-requête interne (basée sur le nom de fichier), afin de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor déterminer la valeur finale de <em>variable</em>. La plupart du
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor temps, elle est identique à LA-U (voir ci-dessus).</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p><em>expression_de_comparaison</em> est une expression
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor rationnelle qui est appliquée à l'instance actuelle de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>chaîne_de_test</em>. <em>chaîne_de_test</em> est d'abord
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor évaluée, puis comparée à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p><em>expression_de_comparaison</em> est en général une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>expression rationnelle compatible perl</em>, mais vous
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor disposez des syntaxes supplémentaires suivantes pour effectuer
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'autres tests utiles sur <em>chaîne_de_test</em> :
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>Vous pouvez préfixer l'expression avec un caractère
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor '<code>!</code>' (point d'exclamation) pour inverser le résultat
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de la condition, quelle que soit l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>Vous pouvez effectuer des comparaisons lexicographiques de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor chaînes :
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong><expression</strong>' (inférieur au sens
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor lexicographique)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Traite l'<em>expression</em> comme une chaîne de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor caractères et la compare lexicographiquement à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>chaîne_de_test</em>. La condition est satisfaite si
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>chaîne_de_test</em> est inférieure au sens
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>>expression</strong>' (supérieur au sens
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor lexicographique)<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Traite l'<em>expression</em> comme une chaîne de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen caractères et la compare lexicographiquement à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>chaîne_de_test</em>. La condition est satisfaite si
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>chaîne_de_test</em> est supérieure au sens
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>'<strong>=expression</strong>' (égal au sens
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor lexicographique)<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Traite l'<em>expression</em> comme une chaîne de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen caractères et la compare lexicographiquement à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>chaîne_de_test</em>. La condition est satisfaite si
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>chaîne_de_test</em> est égale au sens
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor lexicographique à l'<em>expression</em> (les deux chaînes
c867dba1041640ecec7c8194d35a5b4ffce442earbowen sont exactement identiques, caractère pour caractère). Si
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>expression</em> est <code>""</code> (deux guillemets),
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>chaîne_de_test</em> est comparée à la chaîne vide.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong><=expression de comparaison</strong>' (inférieur ou égal à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen au sens lexicographique)<br />
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Considère l'<em>expression_de_comparaison</em> comme une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen chaîne de caractères et la compare au sens lexicographique à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen la <em>chaîne_de_test</em>. Vrai si <em>chaîne_de_test</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor précède lexicographiquement <em>expression_de_comparaison</em>, ou est
c867dba1041640ecec7c8194d35a5b4ffce442earbowen égale à <em>expression_de_comparaison</em> (les deux chaînes
c867dba1041640ecec7c8194d35a5b4ffce442earbowen sont identiques, caractère pour caractère).</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>'<strong>>=expression de comparaison</strong>'
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf (supérieur ou égal à au sens lexicographique)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Considère l'<em>expression_de_comparaison</em> comme une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen chaîne de caractères et la compare au sens lexicographique à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor la <em>chaîne_de_test</em>. Vrai si <em>chaîne_de_test</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor suit lexicographiquement <em>expression_de_comparaison</em>, ou est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor égale à <em>expression_de_comparaison</em> (les deux chaînes
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sont identiques, caractère pour caractère).</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Vous pouvez effectuer des comparaisons d'entiers :
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <li>'<strong>-eq</strong>' (est numériquement égal à)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor La <em>chaîne_de_test</em> est considérée comme un entier,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor et est comparée numériquement à l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comparaison</em>. Vrai si les deux expressions sont
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor numériquement égales.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>-ge</strong>' (est numériquement supérieur ou
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor égal à)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor La <em>chaîne_de_test</em> est considérée comme un entier,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor et est comparée numériquement à l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comparaison</em>. Vrai si <em>chaîne_de_test</em> est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor numériquement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor supérieure ou égale à <em>expression_de_comparaison</em>.</li>
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic <li>'<strong>-gt</strong>' (est numériquement supérieur à)<br />
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic La <em>chaîne_de_test</em> est considérée comme un entier,
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic et est comparée numériquement à l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comparaison</em>. Vrai si <em>chaîne_de_test</em> est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor numériquement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor supérieure à <em>expression_de_comparaison</em>.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>-le</strong>' (est numériquement inférieur ou
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor égal à)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor La <em>chaîne_de_test</em> est considérée comme un entier,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor et est comparée numériquement à l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comparaison</em>. Vrai si <em>chaîne_de_test</em> est
3739b903eb6f5b0944056b2e98d5d8877d003c6figalic numériquement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor inférieure ou égale à <em>expression_de_comparaison</em>.
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic Attention à la confusion avec le drapeau <strong>-l</strong>
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic <li>'<strong>-lt</strong>' (est numériquement inférieur à)<br />
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic La <em>chaîne_de_test</em> est considérée comme un entier,
70f5253b24dd333c67fb6502d557a8b48ad3ba87igalic et est comparée numériquement à l'<em>expression de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comparaison</em>. Vrai si <em>chaîne_de_test</em> est
3739b903eb6f5b0944056b2e98d5d8877d003c6figalic numériquement
3739b903eb6f5b0944056b2e98d5d8877d003c6figalic inférieure à <em>expression_de_comparaison</em>.
3739b903eb6f5b0944056b2e98d5d8877d003c6figalic Attention à la confusion avec le drapeau <strong>-l</strong>
3739b903eb6f5b0944056b2e98d5d8877d003c6figalic <li>Vous pouvez effectuer différents tests sur les attributs de
9652bc3a93433d52f80579062986ead2afe0d11fsf Traite <em>chaîne_de_test</em> comme un chemin et vérifie
9652bc3a93433d52f80579062986ead2afe0d11fsf s'il existe ou pas, et s'il s'agit d'un répertoire.</li>
9652bc3a93433d52f80579062986ead2afe0d11fsf Traite <em>chaîne_de_test</em> comme un chemin et vérifie
9652bc3a93433d52f80579062986ead2afe0d11fsf s'il existe ou pas, et s'il s'agit d'un fichier régulier.</li>
d1636bdc2e674b84ee46f534b51be18ecac6bef5rbowen <li>'<strong>-F</strong>' (test de l'existence d'un fichier
d1636bdc2e674b84ee46f534b51be18ecac6bef5rbowen via une sous-requête)<br />
9652bc3a93433d52f80579062986ead2afe0d11fsf Vérifie si <em>chaîne_de_test</em> est un fichier valide,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor accessible à travers tous les contrôles d'accès du serveur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor actuellement configurés pour ce chemin. C'est une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sous-requête interne qui effectue cette vérification - à
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor utiliser avec précautions car les performances du serveur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor peuvent s'en trouver affectées !</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>-H</strong>' (est un lien symbolique, selon la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor convention bash)<br />
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <li>'<strong>-l</strong>' (est un lien symbolique)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Considère la <em>chaîne_de_test</em> comme un chemin et
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor vérifie son existence et si elle est un lien symbolique. On
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor peut aussi utiliser la convention bash <strong>-L</strong>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ou <strong>-h</strong> lorsqu'il y a risque de confusion
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor avec les tests <strong>-lt</strong> ou <strong>-le</strong>.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>-L</strong>' (est un lien symbolique, selon la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor convention bash)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <li>'<strong>-s</strong>' (est un fichier régulier d'une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor certaine taille)<br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Considère la <em>chaîne_de_test</em> comme un chemin et
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor vérifie son existence et si elle est un fichier régulier
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic d'une taille supérieure à zéro.</li>
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen <li><p>'<strong>-U</strong>' (test de l'existence d'une
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen URL via une sous-requête)<br />
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen Vérifie si <em>chaîne_de_test</em> est une URL valide,
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen accessible à travers tous les contrôles d'accès du serveur
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen actuellement configurés pour ce chemin. C'est une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sous-requête interne qui effectue cette vérification - à
4126704c4950bfd46d32ad54e3b106ac6d868a73sf utiliser avec précautions car les performances du serveur
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf peuvent s'en trouver affectées !</p>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Ce drapeau ne renvoie <em>que</em> des informations
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic concernant le contrôle d'accès, l'authentification et
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic l'autorisation. Il ne renvoie <em>pas</em> d'informations
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic concernant le code d'état que le gestionnaire configuré
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic (static file, CGI, proxy, etc...) aurait, quant à lui,
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <li>'<strong>-x</strong>' (a l'attribut d'exécution positionné)<br />
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen Considère la <em>chaîne_de_test</em> comme un chemin et
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic vérifie son existence et si elle a son attribut d'exécution
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic positionné. Ce positionnement est déterminé en fonction de
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf l'OS sous-jacent.</li>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Si la <em>chaîne_de_test</em> contient la valeur spéciale
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <code>expr</code>, la <em>chaîne de comparaison</em> sera
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic traitée en tant qu'expression rationnelle de type <a
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic Dans l'exemple ci-dessous, on utilise <code>-strmatch</code>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic pour comparer le <code>REFERER</code> avec le nom d'hôte du
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic site afin de bloquer le hotlinking (référencement direct)
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic non désiré.
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic RewriteRule ^/images - [F]
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic </highlight>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <li>Vous pouvez aussi définir certains drapeaux pour
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic comme troisième argument de la directive
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <code>RewriteCond</code>, où <em>drapeaux</em> est un
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic sous-ensemble séparé par des virgules des drapeaux suivants :
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic Rend le test insensible à la casse - il n'est pas fait de
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic distinction entre majuscules et minuscules, à la fois dans le
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic développement de <em>chaîne_de_test</em> et dans
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <em>expression_de_comparaison</em>. Ce drapeau n'est pris en
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic compte que lors d'une comparaison entre <em>chaîne_de_test</em>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic et <em>expression_de_comparaison</em>. Il ne l'est pas pour les
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic vérification par sous-requêtes ou sur le système de
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic fichiers.</li>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic Permet de chaîner les conditions de règles avec un OU au
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic lieu du AND implicite. Exemple typique :
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteCond %{REMOTE_HOST} ^host1 [OR]
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteCond %{REMOTE_HOST} ^host2 [OR]
1093a264c81aa1041581ab059905fb8f7cdfc5e2rbowenRewriteCond %{REMOTE_HOST} ^host3
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteRule ...règles concernant tous ces hôtes...
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</highlight>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Sans ce drapeau, les paires
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor condition/règle devraient être écrites trois fois.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor Si la condition contient un en-tête HTTP, ce drapeau empêche
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ce dernier d'être ajouté à l'en-tête Vary de la réponse. <br />
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor L'utilisation de ce drapeau peut provoquer une mise en cache
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor incorrecte de la réponse, si la représentation de cette réponse
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor varie avec la valeur de l'en-tête considéré. Ce drapeau ne
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor devrait donc être utilisé que si l'on maîtrise parfaitement le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor fonctionnement de l'en-tête Vary.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Pour réécrire la page d'accueil d'un site en fonction de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor l'en-tête ``<code>User-Agent:</code>'' de la requête, vous
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor pouvez utiliser ce qui suit : </p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteCond %{HTTP_USER_AGENT} (iPhone|Blackberry|Android)
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteRule ^/$ /homepage.mobile.html [L]
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorRewriteRule ^/$ /homepage.std.html [L]
cae0359c9286c8e34cbccd15eee2da90562c1ee2sf</highlight>
cae0359c9286c8e34cbccd15eee2da90562c1ee2sf <p>Explications : si vous utilisez un navigateur
cae0359c9286c8e34cbccd15eee2da90562c1ee2sf qui s'identifie comme un
cae0359c9286c8e34cbccd15eee2da90562c1ee2sf navigateur de plateforme mobile (notez que l'exemple est
cae0359c9286c8e34cbccd15eee2da90562c1ee2sf incomplet car il existe de nombreuses autres plateformes
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor mobiles), c'est la version pour mobile de la page d'accueil qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sera renvoyée. Dans le cas contraire, ce sera la page d'accueil
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor standard.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor</directivesynopsis>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<directivesynopsis>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<description>Définit les règles pour le moteur de réécriture</description>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<syntax>RewriteRule
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>Modèle</em> <em>Substitution</em> [<em>drapeaux</em>]</syntax>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<contextlist><context>server config</context><context>virtual host</context>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<context>directory</context><context>.htaccess</context></contextlist>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>La directive <directive>RewriteRule</directive> est le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor véritable cheval de trait de la réécriture. La directive peut
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor apparaître plusieurs fois, chaque instance définissant une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor règle de réécriture particulière. L'ordre dans lequel ces règles
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor sont définies est important - il s'agit de l'ordre dans lequel
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor les règles seront appliquées au cours du processus de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor réécriture.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p><a id="patterns" name="patterns"><em>Modèle</em></a> est une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <a id="regexp" name="regexp">expression rationnelle</a>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor compatible perl. Dans la première règle de réécriture,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor l'expression est comparée au (%-decoded)
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <a href="directive-dict.html#Syntax">chemin de l'URL</a> (ou au
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <a href="directive-dict.html#Syntax">chemin fichier</a>, en
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor fonction du contexte) de la
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor requête. Les expressions suivantes sont comparées à la sortie de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor la dernière règle de réécriture qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor correspondait.</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<note><title><a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est comparé ?</a></title>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor module="core">VirtualHost</directive>, le <em>modèle</em> est tout
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'abord comparé à la portion de l'URL située entre le nom d'hôte
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor éventuellement accompagné du port, et la chaîne de paramètres (par
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Dans les contextes de répertoire <directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>modèle</em> est tout d'abord comparé au chemin du <em>système
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor de fichiers</em>, après suppression du préfixe ou chemin de base
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ayant conduit le serveur vers la règle <directive>RewriteRule</directive> (par
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor "index.html" selon l'endroit où les directives sont définies).</p>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Si vous souhaitez faire une comparaison sur le nom
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor d'hôte, le port, ou la chaîne de requête, utilisez une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor directive <directive module="mod_rewrite">RewriteCond</directive>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor comportant respectivement les variables
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <code>%{HTTP_HOST}</code>, <code>%{SERVER_PORT}</code>, ou
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<note><title>Réécritures dans un contexte de répertoire</title>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<li>L'utilisation du moteur de réécriture dans les
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorfichiers <a href="/howto/htaccess.html">.htaccess</a> et les sections
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzortype="section" module="core">Directory</directive> est un peu plus
4126704c4950bfd46d32ad54e3b106ac6d868a73sfcomplexe.</li>
35ac4e1a6ec5aa3cfa1a34d8f20fe8a841cc46b7rbowen<li>Pour activer le moteur de réécriture dans ces contextes, vous devez
4126704c4950bfd46d32ad54e3b106ac6d868a73sfdéfinir "<code>RewriteEngine On</code>" <strong>et</strong>
4126704c4950bfd46d32ad54e3b106ac6d868a73sf"<code>Options FollowSymLinks</code>". Si l'administrateur a désactivé
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorla possibilité de modifier l'option <code>FollowSymLinks</code> au
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorniveau du répertoire d'un utilisateur, vous ne pouvez pas utiliser le
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzormoteur de réécriture. Cette restriction a été instaurée à des fins de
4126704c4950bfd46d32ad54e3b106ac6d868a73sfsécurité.</li>
4126704c4950bfd46d32ad54e3b106ac6d868a73sf<li>Lorsqu'on utilise le moteur de réécriture dans un fichier
4126704c4950bfd46d32ad54e3b106ac6d868a73sf<code>.htaccess</code>, le chemin de base du répertoire courant (qui est
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzortoujours le même pour ce même répertoire) est automatiquement
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<em>supprimé</em> au cours de la comparaison avec le modèle de la règle
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorde réécriture, et automatiquement <em>ajouté</em> lorsqu'une
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorsubstitution relative (ne débutant pas par un slash ou un nom de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorprotocole) arrive à la fin d'un jeu de règles. Voir la directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<directive module="mod_rewrite">RewriteBase</directive> pour plus de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzordétails à propos de l'ajout du préfixe après les substitutions
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorrelatives.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<li>Si vous souhaitez effectuer une comparaison en prenant en compte
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorl'intégralité du
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorchemin de l'URL dans un contexte de répertoire (htaccess), vous devez
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorutiliser la variable <code>%{REQUEST_URI}</code> dans la directive
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<li>Le prefixe supprimé se termine toujours par un slash, ce qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzorsignifie que la comparaison s'effectue avec une chaîne qui ne comporte
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<em>jamais</em> de slash de début. Ainsi, un <em>modèle</em> contenant
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<code>^/</code> ne correspondra jamais dans un contexte de répertoire.</li>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor<li>Bien que les règles de réécriture soient permises du point de vue de
c867dba1041640ecec7c8194d35a5b4ffce442earbowenla syntaxe dans les sections <directive type="section"
c867dba1041640ecec7c8194d35a5b4ffce442earbowenmodule="core">Location</directive> et <directive type="section"
c867dba1041640ecec7c8194d35a5b4ffce442earbowenmodule="core">Files</directive> (y compris leurs versions sous forme
c867dba1041640ecec7c8194d35a5b4ffce442earbowend'expression rationnelle), elles n'y sont pas prises en compte, et
c867dba1041640ecec7c8194d35a5b4ffce442earbowenn'y sont à priori d'aucune utilité. Les substitutions
c867dba1041640ecec7c8194d35a5b4ffce442earbowenrelatives sont une fonctionnalité qui n'est, elle non-plus pas supportée
c867dba1041640ecec7c8194d35a5b4ffce442earbowendans ce genre de contexte.</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Pour quelques conseils à propos des <glossary
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ref="regex">expressions rationnelles</glossary>, voir le
c867dba1041640ecec7c8194d35a5b4ffce442earbowen document <a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/intro.html#regex">Introduction à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Dans mod_rewrite, on peut aussi utiliser le caractère NON
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ('<code>!</code>') comme préfixe de modèle. Ceci vous permet
c867dba1041640ecec7c8194d35a5b4ffce442earbowen d'inverser la signification d'un modèle, soit pour dire
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ``<em>si l'URL considérée ne correspond <strong>PAS</strong> à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ce modèle</em>''. Le caractère NON peut donc être utilisé à
c867dba1041640ecec7c8194d35a5b4ffce442earbowen titre exceptionnel, lorsqu'il est plus simple d'effectuer une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen comparaison avec le modèle inversé, ou dans la dernière règle
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen par défaut.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowenSi vous utilisez le caractère NON pour inverser la signification d'un
c867dba1041640ecec7c8194d35a5b4ffce442earbowenmodèle, vous ne pouvez pas inclure de parties génériques groupées dans
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalicle modèle. Ceci est dû au fait que, lorsque le modèle ne correspond
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsfpas (autrement dit, sa négation correspond), les groupes sont vides.
c867dba1041640ecec7c8194d35a5b4ffce442earbowenAinsi, si vous utilisez des modèles inversés, vous ne pouvez
c867dba1041640ecec7c8194d35a5b4ffce442earbowenpas vous référer aux groupes par <code>$N</code> dans la chaîne de
c867dba1041640ecec7c8194d35a5b4ffce442earbowensubstitution !
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>Dans une règle de réécriture,
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <a id="rhs" name="rhs"><em>Substitution</em></a> est la chaîne
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de caractères qui remplace le chemin de l'URL original qui
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondait au <em>Modèle</em>. <em>Substitution</em> peut
c867dba1041640ecec7c8194d35a5b4ffce442earbowen être :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Il indique alors la localisation dans le système de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen fichiers de la ressource qui doit être envoyée au
c867dba1041640ecec7c8194d35a5b4ffce442earbowen client. Les substitutions ne sont traitées en tant que chemins du
c867dba1041640ecec7c8194d35a5b4ffce442earbowen système de fichiers que si la règle est configurée dans un
c867dba1041640ecec7c8194d35a5b4ffce442earbowen contexte de serveur (serveur virtuel), et si le premier
c867dba1041640ecec7c8194d35a5b4ffce442earbowen composant du chemin dans la substitution existe dans le système
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de fichiers.</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Un chemin relatif à la valeur de <directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen module="core">DocumentRoot</directive> vers la ressource qui
c867dba1041640ecec7c8194d35a5b4ffce442earbowen doit être servie. Notez que <module>mod_rewrite</module>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen essaie de deviner si vous avez spécifié un chemin du système
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de fichiers ou un chemin d'URL en vérifiant si la première
c867dba1041640ecec7c8194d35a5b4ffce442earbowen partie du chemin existe à la racine du système de fichiers.
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Par exemple, si vous avez spécifié comme chaîne de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em>Substitution</em> <code>/www/file.html</code>, cette
c867dba1041640ecec7c8194d35a5b4ffce442earbowen dernière sera traitée comme un chemin d'URL <em>à moins</em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen qu'un répertoire nommé <code>www</code> n'existe à la racine
c867dba1041640ecec7c8194d35a5b4ffce442earbowen de votre système de fichiers (ou dans le cas d'une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen réécriture au sein d'un fichier <code>.htaccess</code>,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen relativement à la racine des documents), auquel cas la chaîne de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen substitution sera traitée comme un chemin du système de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen fichiers. Si vous désirez que d'autres directives de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondance d'URL (comme la directive <directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen module="mod_alias">Alias</directive>) soient appliquées au
c867dba1041640ecec7c8194d35a5b4ffce442earbowen chemin d'URL résultant, utilisez le drapeau <code>[PT]</code>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen comme décrit ci-dessous.</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Si une URL absolue est spécifiée,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <module>mod_rewrite</module> vérifie si le nom d'hôte
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspond à celui de l'hôte local. Si c'est le cas, le
c867dba1041640ecec7c8194d35a5b4ffce442earbowen protocole et le nom d'hôte sont supprimés, et ce qui reste est
c867dba1041640ecec7c8194d35a5b4ffce442earbowen traité comme un chemin d'URL. Dans le cas contraire, une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen redirection externe vers l'URL indiquée est effectuée. Pour
c867dba1041640ecec7c8194d35a5b4ffce442earbowen forcer une redirection externe vers l'hôte local, voir le
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <dd>Un tiret indique qu'aucune substitution ne doit être
c867dba1041640ecec7c8194d35a5b4ffce442earbowen effectuée (le chemin considéré est transmis sans changement).
c867dba1041640ecec7c8194d35a5b4ffce442earbowen Ceci est utile quand un drapeau doit être appliqué sans
c867dba1041640ecec7c8194d35a5b4ffce442earbowen modifier le chemin (voir ci-dessous).</dd>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>En plus du texte, la chaîne <em>Substition</em> peut
11ca32a7cc125681569e8b3a95b9688ab1212990rbowen comporter :</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>des références arrières (<code>$N</code>) vers le modèle
c867dba1041640ecec7c8194d35a5b4ffce442earbowen d'une directive RewriteRule</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>des références arrières (<code>%N</code>) vers le dernier
c867dba1041640ecec7c8194d35a5b4ffce442earbowen modèle d'une directive RewriteCond qui correspondait</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>des variables du serveur comme dans les chaînes de test de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen condition d'une règle (<code>%{VARNAME}</code>)</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <li>des appels de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen (<code>${nom correspondance:clé|défaut}</code>)</li>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Les références arrières sont des identificateurs de la forme
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>$</code><strong>N</strong> (<strong>N</strong>=0..9), qui
c867dba1041640ecec7c8194d35a5b4ffce442earbowen seront remplacés par le contenu du <strong>N</strong>ème groupe
c867dba1041640ecec7c8194d35a5b4ffce442earbowen du <em>Modèle</em> qui correspondait. Les variables du serveur
c867dba1041640ecec7c8194d35a5b4ffce442earbowen sont les mêmes que dans la <em>Chaîne_de_test</em> d'une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen directive <code>RewriteCond</code>. Les fonctions de comparaison
c867dba1041640ecec7c8194d35a5b4ffce442earbowen sont issues de la directive <code>RewriteMap</code> dans la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen section de laquelle elles sont décrites. Ces trois types de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen variables sont évaluées dans l'ordre ci-dessus.</p>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>Chaque règle de réécriture s'applique au résultat de la règle
c867dba1041640ecec7c8194d35a5b4ffce442earbowen précédente, selon l'ordre dans lequel elles ont été définies dans
210da88109531e6b4c9b121b4d6f15cc24bc108erbowen le fichier de configuration. Le chemin de l'URL ou du système de fichier (voir
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ci-dessus <a href="#what_is_matched">Qu'est-ce qui est
c867dba1041640ecec7c8194d35a5b4ffce442earbowen comparé ?</a>) est <strong>intégralement
c867dba1041640ecec7c8194d35a5b4ffce442earbowen remplacée</strong> par la chaîne de <em>Substitution</em> et le
c867dba1041640ecec7c8194d35a5b4ffce442earbowen processus de réécriture se poursuit jusqu'à ce que toutes les
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf règles aient été appliquées, ou qu'il soit explicitement stoppé
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor par un drapeau <a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="/rewrite/flags.html#flag_l"><code><strong>L</strong></code></a>,
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor ou par un autre drapeau qui implique un arrêt immédiat, comme
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <note><title>Modifier la chaîne de requête</title>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <p>Par défaut, la chaîne de requête est transmise sans
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor modification. Vous pouvez cependant créer dans la chaîne de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor substitution des URLs dont une partie constitue une chaîne de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor requête. Pour cela, ajoutez simplement un point d'interrogation
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor dans la chaîne de substitution pour indiquer que le texte qui
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor suit doit être réinjecté dans la chaîne de requête. Pour
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor supprimer une chaîne de requête, terminez simplement la chaîne de
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor substitution par un point d'interrogation. Pour combiner les
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor nouvelles chaînes de requête avec les anciennes, utilisez le
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <p>En outre, vous pouvez spécifier des <a name="rewriteflags"
c867dba1041640ecec7c8194d35a5b4ffce442earbowen id="rewriteflags">actions</a> spéciales à effectuer en ajoutant
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen comme troisième argument de la directive
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <code>RewriteRule</code>. Séparés par des virgules au sein d'une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen liste encadrée par des crochets, les <em>drapeaux</em> peuvent
c867dba1041640ecec7c8194d35a5b4ffce442earbowen être choisis dans la table suivante. Vous trouverez plus de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen détails, et des exemples pour chaque drapeau dans le <a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html">document à propos des drapeaux de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Echappe les caractères non-alphanumériques
c867dba1041640ecec7c8194d35a5b4ffce442earbowen dans les références arrières <em>avant</em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_b">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Avec ce drapeau, si les références arrières sont échappées,
c867dba1041640ecec7c8194d35a5b4ffce442earbowen les espaces seront échappés en %20 au lieu de +. Ceci s'avère
c867dba1041640ecec7c8194d35a5b4ffce442earbowen utile lorsqu'une référence arrière est utilisée dans la partie
c867dba1041640ecec7c8194d35a5b4ffce442earbowen chemin, et non dans la chaîne de paramètres de la requête ;
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_bnp">ici.</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>La règle est chaînée avec la règle suivante. Si la règle
c867dba1041640ecec7c8194d35a5b4ffce442earbowen échoue, la ou les règles avec lesquelles elle est est chaînée
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_c">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Définit un cookie au niveau du navigateur client. La syntaxe
c867dba1041640ecec7c8194d35a5b4ffce442earbowen complète est :
c867dba1041640ecec7c8194d35a5b4ffce442earbowen CO=<em>NAME</em>:<em>VAL</em>:<em>domain</em>[:<em>lifetime</em>[:<em>path</em>[:<em>secure</em>[:<em>httponly</em>]]]] <em><a href="/rewrite/flags.html#flag_co">details ...</a></em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em><a href="/rewrite/flags.html#flag_co">détails ...</a></em>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Supprime la partie PATH_INFO de l'URI réécrit. <em><a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_dpi">détails
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Stoppe le processus de réécriture immédiatement et
c867dba1041640ecec7c8194d35a5b4ffce442earbowen n'applique plus aucune règle. Empêche aussi l'application
c867dba1041640ecec7c8194d35a5b4ffce442earbowen ultérieure de règles de réécriture dans les contextes de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen répertoire et de fichier .htaccess (disponible à partir de la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_end">détails ...</a></em></td>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <td>Définit la variable d'environnement <em>VAR</em> (à la valeur
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em>VAL</em> si elle est fournie). La variante !<em>VAR</em>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor annule la définition de la variable <em>VAR</em>.<em><a
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor href="/rewrite/flags.html#flag_e">détails ...</a></em></td>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <td>Renvoie une réponse 403 FORBIDDEN au navigateur client.
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <em><a href="/rewrite/flags.html#flag_f">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Renvoie un message d'erreur 410 GONE au navigateur client. <em><a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_g">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>L'URI résultant est envoyé au <em>Gestionnaire de
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_h">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Arrête le processus de réécriture immédiatement et n'applique
c867dba1041640ecec7c8194d35a5b4ffce442earbowen plus aucune règle. Prêtez une attention particulière aux mises
c867dba1041640ecec7c8194d35a5b4ffce442earbowen en garde concernant les contextes de niveau répertoire et
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_l">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Réexécute le processus de réécriture à partir de la première
c867dba1041640ecec7c8194d35a5b4ffce442earbowen règle, en utilisant le résultat du jeu de règles, sous réserve
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_n">détails
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Rend la comparaison entre modèles insensible à la casse.
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <em><a href="/rewrite/flags.html#flag_nc">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Empêche mod_rewrite d'effectuer un échappement hexadécimal
c867dba1041640ecec7c8194d35a5b4ffce442earbowen des caractères spéciaux dans le résultat de la réécriture. <em><a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_ne">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>La règle est sautée si la requête courante est une
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_ns">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Force l'envoi en interne de l'URL de substitution en tant
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_p">détails
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>L'URI résultant est repassé au moteur de mise en
c867dba1041640ecec7c8194d35a5b4ffce442earbowen correspondance des URLs pour y être traité par d'autres
c867dba1041640ecec7c8194d35a5b4ffce442earbowen traducteurs URI-vers-nom de fichier, comme <code>Alias</code> ou
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_pt">détails ...</a></em></td>
c867dba1041640ecec7c8194d35a5b4ffce442earbowen <td>Ajoute toute chaîne de paramètres présente dans l'URL de la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen requête originale à toute chaîne de paramètres créée dans la
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_qsa">détails ...</a></em></td>
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <td>Supprime toute chaîne de paramètres de l'URI entrant. <em><a
c867dba1041640ecec7c8194d35a5b4ffce442earbowen href="/rewrite/flags.html#flag_qsd">détails
dc3a272f8afcbc137adcfee4c3aa052d2bdf4df7gryzor <td>Force une redirection externe, avec un code de statut HTTP
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung href="/rewrite/flags.html#flag_r">détails ...</a></em>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen <td>Si la règle courante s'applique, le moteur de réécriture
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen doit sauter les <em>nombre</em> règles suivantes. <em><a
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen href="/rewrite/flags.html#flag_s">détails ...</a></em></td>