<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1352923:1371047 (outdated) -->
+<!-- English Revision : 1372802 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
module="mod_usertrack">CookieStyle</directive>, <directive
module="mod_usertrack">CookieTracking</directive>, <directive
module="mod_usertrack">CookieName</directive>), des directives du
- module <module>mod_rewrite</module> <directive
+ module <module>mod_rewrite</module> (<directive
module="mod_rewrite">RewriteEngine</directive>, <directive
module="mod_rewrite">RewriteOptions</directive>, <directive
module="mod_rewrite">RewriteBase</directive>, <directive
<code>~</code>. Par exemple :</p>
<example>
- <Directory ~ "^/www/.*/[0-9]{3}">
+ <Directory ~ "^/www/[0-9]{3}">
</example>
<p>pourra correspondre à tout répertoire situé dans /www/ et dont le
configuration. Par exemple, avec</p>
<example>
- <Directory ~ abc$><br />
+ <Directory ~ "public_html/.*"><br />
<indent>
# ... directives here ...<br />
</indent>
<p>L'argument <var>filename</var> peut contenir un nom de fichier
ou une chaîne de caractères avec caractères génériques, où
<code>?</code> remplace un caractère, et <code>*</code> toute chaîne
- de caractères. On peut aussi utiliser les <glossary
+ de caractères :</p>
+ <example><pre><Files "cat.html">
+ # Insérer ici les directives s'appliquant au fichier cat.html
+</Files>
+
+<Files "?at.*">
+ # Les directives insérées ici s'appliqueront aux fichiers cat.html,
+ # bat.html, hat.php et ainsi de suite.
+</Files></pre></example>
+
+ <p>
+ On peut aussi utiliser les <glossary
ref="regex">Expressions rationnelles</glossary> en ajoutant la
caractère <code>~</code>. Par exemple :</p>
<em>pas</em> le nom de chemin concerné défini par la section
<directive type="section"
module="core">Directory</directive>.</p>
- <p>Notez aussi que cette option <strong>est ignorée</strong> si
- elle est définie dans une section <directive type="section"
- module="core">Location</directive>.</p>
+
+ <p>Les options <code>FollowSymLinks</code> et
+ <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
+ sections <directive type="section"
+ module="core">Directory</directive> ou les fichiers
+ <code>.htaccess</code>.</p>
+
<p>Le fait d'omettre cette option ne doit pas être considéré comme
une mesure de sécurité efficace, car il existe toujours une
situation de compétition (race condition) entre l'instant où l'on
vers un fichier ou un répertoire dont le propriétaire est le même
que celui du lien.
- <note><title>Note</title> <p>Cette option est ignorée si elle est
- définie dans une section <directive module="core"
- type="section">Location</directive>.</p>
+ <note><title>Note</title>
+ <p>Les options <code>FollowSymLinks</code> et
+ <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
+ sections <directive type="section"
+ module="core">Directory</directive> ou les fichiers
+ <code>.htaccess</code>.</p>
+
<p>Le fait d'omettre cette option ne doit pas être considéré comme
une mesure de sécurité efficace, car il existe toujours une
situation de compétition (race condition) entre l'instant où l'on
vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
- l'on utilise effectivement ce chemin.</p></note>
- </dd>
+ l'on utilise effectivement ce chemin.</p>
+ </note> </dd>
</dl>
<p>Normalement, si plusieurs directives
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1307737:1363373 (outdated) -->
+<!-- English Revision : 1363373 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<seealso><a href="vhosts.html">Serveurs virtuels</a></seealso>
<seealso><a href="proxy.html">Mise en cache</a></seealso>
<seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Techniques avancées et astuces</a></seealso>
+<seealso><a href="advanced.html">Techniques avancées</a></seealso>
<seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
<section id="introduction"><title>Introduction</title>
non-alphanumériques des références arrières seront échappés. Considérons
par exemple cette règle :</p>
-<example>
-RewriteRule ^(/.*)$ /index.php?show=$1
-</example>
+<highlight language="config">RewriteRule ^search/(.*)$ /search.php?term=$1</highlight>
+
+<p>Soit la chaîne 'x & y/z' ; un navigateur va la coder en
+'x%20%26%20y%2Fz', transformant la requête en 'search/x%20%26%20y%2Fz'.
+Sans le drapeau B, la règle va intercepter la chaîne 'search.php?term=x
+& y/z' qui n'est pas une URL valide, et la coder en
+<code>search.php?term=x%20&y%2Fz=</code>, ce qui ne correspond pas
+au résultat attendu.</p>
+
+<p>Avec le drapeau B, la règle va réencoder les paramètres avant de les
+passer à l'URL de sortie, ce qui va produire l'URL correcte
+<code>/search.php?term=x%20%26%20y%2Fz</code>.</p>
-<p>Avec cet exemple, <code>/C++</code> sera réécrit en
-<code>/index.php?show=/C++</code>. Mais <code>/C%2b%2b</code> sera lui
-aussi réécrit en <code>/index.php?show=/C++</code>, car le caractère
-<code>%2b</code> aura été "déséchappé". Avec le drapeau B par contre,
-<code>/C%2b%2b</code> sera réécrit en
-<code>/index.php?show=/C%2b%2b</code>.</p>
+<p>Notez que vous serez peut-être amené à définir la directive
+<directive module="core">AllowEncodedSlashes</directive> à
+<code>On</code> pour que cet exemple fonctionne, car httpd n'autorise
+pas les slashes encodés dans les URLs et renvoie une erreur 404 s'il en
+rencontre un.</p>
<p>Ce processus d'échappement est en particulier nécessaire dans le
contexte d'un mandataire, où l'accès au serveur d'arrière-plan échouera
<section id="flag_s"><title>S|skip</title>
<p>Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir
-exécuter. Ceci peut s'interpréter comme une instruction
+exécuter. La syntaxe du drapeau skip est [S=<em>N</em>], où
+<em>N</em> correspond au nombre de règles à sauter.
+Ceci peut s'interpréter comme une instruction
<code>goto</code> dans votre jeu de règles de réécriture. Dans
l'exemple suivant, nous ne voulons exécuter la règle <directive
module="mod_rewrite">RewriteRule</directive> que si l'URI demandé ne
correspond pas à un fichier existant.</p>
<example>
-# La requête concerne-t-elle un fichier qui n'existe pas ?<br />
-RewriteCond %{REQUEST_FILENAME} !-f<br />
-RewriteCond %{REQUEST_FILENAME} !-d<br />
-# Si c'est la cas, on saute les deux règles de réécriture suivantes<br />
-RewriteRule .? - [S=2]<br />
-<br />
-RewriteRule (.*\.gif) images.php?$1<br />
+# La requête concerne-t-elle un fichier qui n'existe pas ?<br/>
+RewriteCond %{REQUEST_FILENAME} !-f<br/>
+RewriteCond %{REQUEST_FILENAME} !-d<br/>
+# Si c'est la cas, on saute les deux règles de réécriture suivantes<br/>
+RewriteRule .? - [S=2]<br/>
+RewriteRule (.*\.gif) images.php?$1<br/>
RewriteRule (.*\.html) docs.php?$1
</example>