<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932362:1933062 (outdated) -->
+<!-- English Revision: 1933062 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
module="mod_rewrite">RewriteRule</directive> échappe les caractères
non-alphanumériques avant d'appliquer la transformation.</p>
-<p><code>mod_rewrite</code> doit supprimer les séquences d'échappement
+<p><module>mod_rewrite</module> doit supprimer les séquences d'échappement
des URLs avant leur
mise en correspondance avec le système de fichiers ; les séquences
d'échappement sont donc supprimées des références arrières au moment où
<p>Dans l'exemple ci-dessus, la règle ne réécrit
pas la requête. La cible de réécriture "-"
-indique à mod_rewrite de transmettre la requête sans
+indique à <module>mod_rewrite</module> de transmettre la requête sans
modification. Par contre, il
définit un cookie nommé 'frontdoor' avec une valeur 'yes'. Le cookie est
valide pour tout hôte situé dans le domaine <code>.example.org</code>. Sa
</section>
<section id="flag_ne"><title>NE|noescape</title>
-<p>Par défaut, les caractères spéciaux, comme <code>&</code> et
-<code>?</code>, sont convertis en leur équivalent hexadécimal pour les règles
-qui génèrent des redirections externes. Le drapeau [NE] permet d'éviter cette
-conversion.</p>
+<p>Par défaut, lorsqu’une directive <directive
+module="mod_rewrite">RewriteRule</directive> résulte en une redirection externe,
+tout caractère dans la sortie qui ne fait pas partie de l’ensemble sûr suivant
+est converti en son code hexa (encodage avec caractère pourcentage) :</p>
+
+<ul>
+ <li>Caractères alphanumériques : <code>A-Z</code>, <code>a-z</code>,
+ <code>0-9</code></li>
+ <li>Caractères spéciaux : <code>$-_.+!*'(),:;@&=/~</code></li>
+</ul>
+
+<p>Par exemple, <code>#</code> est converti en <code>%23</code> et
+<code>?</code> en <code>%3F</code>. Le caractère <code>%</code> est aussi
+échappé (vers <code>%25</code>), ce qui signifie que tout caractère codé avec
+pourcentage déjà présent dans la substitution sera doublement encodé.</p>
+
+<p>Utiliser le drapeau [NE] empêche cet échappement, ce qui permet de
+transmettre sans modification vers l’URL de redirection des caractères comme
+<code>#</code> et <code>?</code>.</p>
<highlight language="config">RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]</highlight>
<p>
Dans un contexte de niveau répertoire, n'utilisez que <code>-</code>
(tiret) comme substitution, <em>dans toute la séquence de réécriture de
-mod_rewrite</em>, sinon le type MIME défini avec ce drapeau
+<module>mod_rewrite</module></em>, sinon le type MIME défini avec ce drapeau
sera perdu suite à un retraitement interne (y compris les séquences de
-réécriture suivantes de mod_rewrite). Dans ce contexte, vous pouvez
+réécriture suivantes de <module>mod_rewrite</module>). Dans ce contexte, vous pouvez
utiliser le drapeau <code>L</code> pour terminer la séquence
-<em>courante</em> de réécriture de mod_rewrite.</p>
+<em>courante</em> de réécriture de <module>mod_rewrite</module>.</p>
</section>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1174747:1933067 (outdated) -->
+<!-- English Revision: 1933067 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<p>Ce document est un complément de la <a
href="../mod/mod_rewrite.html">documentation de référence</a> du module
<module>mod_rewrite</module>. Il décrit les changements apportés aux règles
-lorsqu'on utilise mod_rewrite dans les fichiers .htaccess, et comment
-travailler avec ces changements.</p>
+lorsqu'on utilise <module>mod_rewrite</module> dans les fichiers .htaccess, et
+comment travailler avec ces changements.</p>
</summary>
<seealso><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></seealso>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932321:1933068 (outdated) -->
+<!-- English Revision: 1933068 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<module>mod_rewrite</module>. Il montre comment utiliser
<module>mod_rewrite</module> pour rediriger et remettre en
correspondance une requête. Il contient de
-nombreux exemples d'utilisation courante de mod_rewrite avec une
+nombreux exemples d'utilisation courante de <module>mod_rewrite</module> avec une
description détaillée de leur fonctionnement.</p>
<note type="warning">Vous devez vous attacher à comprendre le
<dd>
<p>Dans l'exemple <a
- href="#old-to-new-intern">interne</a>, on a utilisé mod_rewrite afin
+ href="#old-to-new-intern">interne</a>, on a utilisé <module>mod_rewrite</module> afin
de dissimuler la redirection au client. Dans cet exemple, en
revanche, on aurait pu se contenter d'une directive Redirect :</p>
<dt>Discussion</dt>
<dd>
<p>Cet exemple utilise une fonctionnalité souvent méconnue de
- mod_rewrite, en tirant avantage de l'ordre d'exécution du jeu de
- règles. En particulier, mod_rewrite évalue la partie gauche des
+ <module>mod_rewrite</module>, en tirant avantage de l'ordre d'exécution du jeu de
+ règles. En particulier, <module>mod_rewrite</module> évalue la partie gauche des
règles de réécriture avant d'évaluer les directives RewriteCond. En
conséquence, $1 est déjà défini au moment où les directives
RewriteCond sont évaluées. Ceci nous permet de tester l'existence du
<dd>
-<p>Pour y parvenir, il vaut mieux se passer de mod_rewrite, et utiliser
+<p>Pour y parvenir, il vaut mieux se passer de <module>mod_rewrite</module>, et utiliser
plutôt la directive <directive module="mod_alias">Redirect</directive> dans
une section de serveur virtuel pour le/les noms d'hôte non canoniques.</p>
</highlight>
<p>Si, pour une raison particulière, vous voulez tout de même utiliser
-<code>mod_rewrite</code> - dans le cas, par exemple, où vous avez besoin
+<module>mod_rewrite</module> - dans le cas, par exemple, où vous avez besoin
d'un jeu plus important de règles de réécritures - vous pouvez utiliser
la recette suivante :</p>
<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1673945:1933069 (outdated) -->
+<!-- English Revision: 1933069 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<summary>
<p>Ce document passe en revue certains détails techniques à propos du
-module mod_rewrite et de la mise en correspondance des URLs</p>
+module <module>mod_rewrite</module> et de la mise en correspondance des URLs</p>
</summary>
<seealso><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></seealso>
<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
authentification, autorisation, gestion de contenu ou journalisation (la
liste n'est pas exhaustive).</p>
- <p>mod_rewrite agit dans deux de ces phases (ou accroches - hooks -
+ <p><module>mod_rewrite</module> agit dans deux de ces phases (ou accroches - hooks -
comme on les nomme souvent) pour la réécriture des URLs.</p>
<p>Tout d'abord, il utilise le hook traduction URL vers nom de
type="section">Directory</directive>) sont appliquées. Ce processus
s'exécute au cours de la phase Fixup.</p>
- <p>Dans tous ces cas, mod_rewrite réécrit le
+ <p>Dans tous ces cas, <module>mod_rewrite</module> réécrit le
<code>REQUEST_URI</code> soit vers une nouvelle URL, soit vers un
nom de fichier.</p>
fichiers <code>.htaccess</code> et les sections
<code>Directory</code>), les règles de réécriture s'appliquent après
la traduction de l'URL en nom de fichier. C'est pourquoi le chemin
- URL auquel mod_rewrite compare initialement les directives
+ URL auquel <module>mod_rewrite</module> compare initialement les directives
<directive module="mod_rewrite">RewriteRule</directive> est le
chemin complet vers le nom de fichier traduit amputé de la partie
répertoires (y compris le dernier slash).</p>
</table>
- <p>Pour une étude plus approfondie de la manière dont mod_rewrite
+ <p>Pour une étude plus approfondie de la manière dont <module>mod_rewrite</module>
manipule les URLs dans les différents contextes, vous pouvez
consulter les <a href="../mod/mod_rewrite.html#logging">entrées du
journal</a> générées au cours du processus de réécriture.</p>
<section id="InternalRuleset"><title>Traitement du jeu de règles</title>
- <p>Maintenant, quand mod_rewrite se lance dans ces deux phases de
+ <p>Maintenant, quand <module>mod_rewrite</module> se lance dans ces deux phases de
l'API, il lit le jeu de règles configurées depuis la structure
contenant sa configuration (qui a été elle-même créée soit au
démarrage d'Apache pour le contexte du serveur, soit lors du
</p>
<p>L'URL est tout d'abord comparée au
<em>Modèle</em> de chaque règle. Lorsqu'une règle ne s'applique
- pas, mod_rewrite stoppe immédiatement le traitement de cette règle
+ pas, <module>mod_rewrite</module> stoppe immédiatement le traitement de cette règle
et passe à la règle suivante. Si l'URL correspond au
- <em>Modèle</em>, mod_rewrite recherche la présence de conditions
+ <em>Modèle</em>, <module>mod_rewrite</module> recherche la présence de conditions
correspondantes (les directives Rewritecond apparaissant dans la
configuration juste
- avant les règles de réécriture). S'il n'y en a pas, mod_rewrite remplace
+ avant les règles de réécriture). S'il n'y en a pas, <module>mod_rewrite</module> remplace
l'URL par une chaîne élaborée à partir de la chaîne de
<em>Substitution</em>, puis passe à la règle suivante. Si des
- conditions sont présentes, mod_rewrite lance un bouclage
+ conditions sont présentes, <module>mod_rewrite</module> lance un bouclage
secondaire afin de les traiter selon l'ordre dans lequel elles
sont définies. La logique de traitement des conditions est
différente : on ne compare pas l'URL à un modèle. Une chaîne de