diff options
author | Lucien Gentis <lgentis@apache.org> | 2016-01-30 18:36:32 +0100 |
---|---|---|
committer | Lucien Gentis <lgentis@apache.org> | 2016-01-30 18:36:32 +0100 |
commit | 985fcfccee2342e22d67d873e2ee133196b1382f (patch) | |
tree | 51aa6f48fa375b288408386e5a87d8eab85973b5 /docs/manual/rewrite | |
parent | charset returns to ISO-8859-1. (diff) | |
download | apache2-985fcfccee2342e22d67d873e2ee133196b1382f.tar.xz apache2-985fcfccee2342e22d67d873e2ee133196b1382f.zip |
Rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1727738 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/rewrite')
-rw-r--r-- | docs/manual/rewrite/flags.html | 2 | ||||
-rw-r--r-- | docs/manual/rewrite/flags.html.fr | 676 | ||||
-rw-r--r-- | docs/manual/rewrite/index.html | 2 | ||||
-rw-r--r-- | docs/manual/rewrite/index.html.fr | 92 | ||||
-rw-r--r-- | docs/manual/rewrite/intro.html | 2 | ||||
-rw-r--r-- | docs/manual/rewrite/intro.html.fr | 336 | ||||
-rw-r--r-- | docs/manual/rewrite/tech.html | 2 | ||||
-rw-r--r-- | docs/manual/rewrite/tech.html.fr | 208 |
8 files changed, 660 insertions, 660 deletions
diff --git a/docs/manual/rewrite/flags.html b/docs/manual/rewrite/flags.html index 91c8a2883c..e073030df0 100644 --- a/docs/manual/rewrite/flags.html +++ b/docs/manual/rewrite/flags.html @@ -6,4 +6,4 @@ Content-type: text/html; charset=ISO-8859-1 URI: flags.html.fr Content-Language: fr -Content-type: text/html; charset=ISO-8859-1 +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/rewrite/flags.html.fr b/docs/manual/rewrite/flags.html.fr index bfb25931ff..9f249489b8 100644 --- a/docs/manual/rewrite/flags.html.fr +++ b/docs/manual/rewrite/flags.html.fr @@ -1,13 +1,13 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> -<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> -<title>Les drapeaux de réécriture - Serveur Apache HTTP Version 2.5</title> +<title>Les drapeaux de réécriture - Serveur Apache HTTP Version 2.5</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> @@ -21,19 +21,19 @@ <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> -<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Les drapeaux de réécriture</h1> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Les drapeaux de réécriture</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/flags.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/flags.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/flags.html" title="Français"> fr </a></p> </div> -<p>Ce document décrit les drapeaux disponibles dans la directive +<p>Ce document décrit les drapeaux disponibles dans la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, en fournissant -des explications détaillées et des exemples.</p> +des explications détaillées et des exemples.</p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#flag_b">B (échappement dans les références arrières)</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#flag_bnp">BNP|backrefnoplus (ne pas échapper +<li><img alt="" src="../images/down.gif" /> <a href="#flag_b">B (échappement dans les références arrières)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#flag_bnp">BNP|backrefnoplus (ne pas échapper l'espace en +)</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#flag_c">C|chain</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#flag_co">CO|cookie</a></li> @@ -55,166 +55,166 @@ l'espace en +)</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#flag_r">R|redirect</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#flag_s">S|skip</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#flag_t">T|type</a></li> -</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en -correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en +correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="introduction" id="introduction">Introduction</a></h2> -<p>Le comportement d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par un ou -plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés -de crochets, et séparés le cas échéant par des virgules.</p> +<p>Le comportement d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par un ou +plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés +de crochets, et séparés le cas échéant par des virgules.</p> <pre class="prettyprint lang-config">RewriteRule pattern target [Flag1,Flag2,Flag3]</pre> -<p>Chaque drapeau (à quelques exceptions près) -possède une forme courte, comme <code>CO</code>, ainsi qu'une forme longue, +<p>Chaque drapeau (à quelques exceptions près) +possède une forme courte, comme <code>CO</code>, ainsi qu'une forme longue, comme <code>cookie</code>. Bien que -la forme courte soit la plus couramment utilisée, nous vous recommandons +la forme courte soit la plus couramment utilisée, nous vous recommandons de vous familiariser avec les drapeaux sous leur forme longue, afin de -bien mémoriser ce que chaque drapeau est supposé faire. +bien mémoriser ce que chaque drapeau est supposé faire. Certains drapeaux acceptent un ou plusieurs arguments. Les drapeaux ne -sont pas sensibles à la casse.</p> +sont pas sensibles à la casse.</p> -<p>Les drapeaux qui modifient les métadonnées associées à la requête -(T=, H=, E=) n'ont aucun effet dans un contexte de répertoire ou de -fichier htaccess, lorsqu'une substitution (autre que '-') est effectuée -au cours de la même passe du processus de réécriture. +<p>Les drapeaux qui modifient les métadonnées associées à la requête +(T=, H=, E=) n'ont aucun effet dans un contexte de répertoire ou de +fichier htaccess, lorsqu'une substitution (autre que '-') est effectuée +au cours de la même passe du processus de réécriture. </p> -<p>Chaque drapeau disponible est présenté ici, avec un exemple +<p>Chaque drapeau disponible est présenté ici, avec un exemple d'utilisation.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="flag_b" id="flag_b">B (échappement dans les références arrières)</a></h2> -<p>Avec le drapeau [B], la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> échappe les caractères -non-alphanumériques avant d'appliquer la transformation. A partir -de la version 2.4.10, vous pouvez limiter l'échappement dans les -références arrières à une liste de caractères que vous pouvez spécifiez comme +<h2><a name="flag_b" id="flag_b">B (échappement dans les références arrières)</a></h2> +<p>Avec le drapeau [B], la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> échappe les caractères +non-alphanumériques avant d'appliquer la transformation. A partir +de la version 2.4.10, vous pouvez limiter l'échappement dans les +références arrières à une liste de caractères que vous pouvez spécifiez comme dans cet exemple : <code>[B=#?;]</code>. Notez que l'espace peut faire -partie de la liste des caractères à échapper, mais qu'il ne doit pas -être le dernier caractère de cette liste. +partie de la liste des caractères à échapper, mais qu'il ne doit pas +être le dernier caractère de cette liste. </p> -<p><code>mod_rewrite</code> doit supprimer les séquences d'échappement +<p><code>mod_rewrite</code> 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ù -ces dernières sont appliquées. Avec le drapeau B, les caractères -non-alphanumériques des références arrières seront échappés. Considérons -par exemple cette règle :</p> +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ù +ces dernières sont appliquées. Avec le drapeau B, les caractères +non-alphanumériques des références arrières seront échappés. Considérons +par exemple cette règle :</p> <pre class="prettyprint lang-config">RewriteRule "^search/(.*)$" "/search.php?term=$1"</pre> <p>Soit le terme de recherche 'x & y/z' ; un navigateur va le coder -en 'x%20%26%20y%2Fz', transformant la requête en -'search/x%20%26%20y%2Fz'. Sans le drapeau B, cette règle de réécriture -va réécrire la requête en 'search.php?term=x & y/z', ce qui ne -correspond pas à une URL valide et cette dernière sera encodée en -<code>search.php?term=x%20&y%2Fz=</code>, ce qui ne correspond pas à +en 'x%20%26%20y%2Fz', transformant la requête en +'search/x%20%26%20y%2Fz'. Sans le drapeau B, cette règle de réécriture +va réécrire la requête en 'search.php?term=x & y/z', ce qui ne +correspond pas à une URL valide et cette dernière sera encodée en +<code>search.php?term=x%20&y%2Fz=</code>, ce qui ne correspond pas à ce que l'on souhaitait.</p> -<p>Avec le drapeau B, les paramètres sont réencodés avant d'être passés -à l'URL résultante, ce qui fournit une réécriture correcte en +<p>Avec le drapeau B, les paramètres sont réencodés avant d'être passés +à l'URL résultante, ce qui fournit une réécriture correcte en <code>/search.php?term=x%20%26%20y%2Fz</code>.</p> -<p>Notez que vous devrez peut-être aussi définir la +<p>Notez que vous devrez peut-être aussi définir la directive <code class="directive"><a href="../mod/core.html#allowencodedslashes">AllowEncodedSlashes</a></code> -à <code>On</code> pour +à <code>On</code> pour que cet exemple particulier fonctionne, car httpd ne permet pas les -slashes encodés dans les URLs, et renvoie une erreur 404 s'il en +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 -si on présente à ce dernier une URL non échappée.</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 +si on présente à ce dernier une URL non échappée.</p> -<p>Une alternative à ce drapeau consiste à utiliser une directive +<p>Une alternative à ce drapeau consiste à utiliser une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> pour capturer -%{THE_REQUEST}, les chaînes capturées se présentant -alors sous la forme codée.</p> +%{THE_REQUEST}, les chaînes capturées se présentant +alors sous la forme codée.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="flag_bnp" id="flag_bnp">BNP|backrefnoplus (ne pas échapper +<h2><a name="flag_bnp" id="flag_bnp">BNP|backrefnoplus (ne pas échapper l'espace en +)</a></h2> -<p>Si le drapeau [BNP] est spécifié, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> échappera le caractère -espace en %20 au lieu de '+' dans les références arrières. Ceci s'avère -utile lorsque la référence arrière est utilisée dans la partie chemin, -et non dans les paramètres de la requête.</p> +<p>Si le drapeau [BNP] est spécifié, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> échappera le caractère +espace en %20 au lieu de '+' dans les références arrières. Ceci s'avère +utile lorsque la référence arrière est utilisée dans la partie chemin, +et non dans les paramètres de la requête.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_c" id="flag_c">C|chain</a></h2> -<p>Le drapeau [C] ou [chain] indique que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est chaînée avec la -suivante. Autrement dit, si la règle s'applique, elle est traitée -normalement et passe le contrôle à la règle suivante. Par contre, si -elle ne s'applique pas, la règle suivante, ainsi que toutes les règles -chaînées qui suivent, seront sautées.</p> +<p>Le drapeau [C] ou [chain] indique que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est chaînée avec la +suivante. Autrement dit, si la règle s'applique, elle est traitée +normalement et passe le contrôle à la règle suivante. Par contre, si +elle ne s'applique pas, la règle suivante, ainsi que toutes les règles +chaînées qui suivent, seront sautées.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_co" id="flag_co">CO|cookie</a></h2> -<p>Le drapeau [CO], ou [cookie], vous permet de définir un cookie -lorsqu'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> -s'applique. Il possède trois arguments obligatoires et +<p>Le drapeau [CO], ou [cookie], vous permet de définir un cookie +lorsqu'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> +s'applique. Il possède trois arguments obligatoires et quatre arguments optionnels.</p> -<p>La syntaxe complète de ce drapeau, avec tous ses attributs, est la +<p>La syntaxe complète de ce drapeau, avec tous ses attributs, est la suivante :</p> <div class="example"><p><code> [CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] </code></p></div> -<p>Si un caractère littéral ':' doit être insérer dans un des champs du +<p>Si un caractère littéral ':' doit être insérer dans un des champs du cookie, une autre syntaxe est disponible. Pour utiliser cette syntaxe -alternative, le contenu du champ "Name" doit être précédé du caractère -';', et les sépateurs de champs deviendront des ';'.</p> +alternative, le contenu du champ "Name" doit être précédé du caractère +';', et les sépateurs de champs deviendront des ';'.</p> <div class="example"><p><code> [CO=;NAME;VALUE:MOREVALUE;DOMAIN;lifetime;path;secure;httponly] </code></p></div> -<p>Vous devez déclarer un nom, une valeur et un domaine pour que -le cookie puisse être défini.</p> +<p>Vous devez déclarer un nom, une valeur et un domaine pour que +le cookie puisse être défini.</p> <dl> <dt>Domain</dt> <dd>Le domaine pour lequel vous souhaitez que le cookie soit valide. Ce -peut être un nom de serveur, comme <code>www.example.com</code>, ou un +peut être un nom de serveur, comme <code>www.example.com</code>, ou un domaine, comme <code>.example.com</code>. Il doit comporter au moins -deux parties séparées par un point. C'est à dire que vous ne pouvez pas +deux parties séparées par un point. C'est à dire que vous ne pouvez pas utiliser les valeurs <code>.com</code> ou <code>.net</code>. En effet, -ce style de cookie est interdit par le modèle de sécurité des cookies.</dd> +ce style de cookie est interdit par le modèle de sécurité des cookies.</dd> </dl> -<p>Vous pouvez aussi définir les valeurs suivantes :</p> +<p>Vous pouvez aussi définir les valeurs suivantes :</p> <dl> <dt>Lifetime</dt> -<dd>La durée de vie du cookie, en minutes.</dd> -<dd>Une valeur de 0 indique une durée de vie correspondant à la session -courante du navigateur. Il s'agit de la valeur par défaut.</dd> +<dd>La durée de vie du cookie, en minutes.</dd> +<dd>Une valeur de 0 indique une durée de vie correspondant à la session +courante du navigateur. Il s'agit de la valeur par défaut.</dd> <dt>Path</dt> -<dd>Le chemin, sur le site web concerné, pour lequel le cookie est +<dd>Le chemin, sur le site web concerné, pour lequel le cookie est valide, du style <code>/clients/</code> or <code>/fichiers/telechargement/</code>.</dd> -<dd>La valeur par défaut est <code>/</code> - c'est à dire l'ensemble du +<dd>La valeur par défaut est <code>/</code> - c'est à dire l'ensemble du site web.</dd> <dt>Secure</dt> <dd>Si cet argument a pour valeur <code>secure</code>, -<code>true</code>, ou <code>1</code>, le cookie ne pourra être transmis -que dans le cadre d'une connexion sécurisée (https).</dd> +<code>true</code>, ou <code>1</code>, le cookie ne pourra être transmis +que dans le cadre d'une connexion sécurisée (https).</dd> <dt>httponly</dt> <dd>Si cet argument a pour valeur <code>HttpOnly</code>, <code>true</code>, ou <code>1</code>, le cookie aura son drapeau -<code>HttpOnly</code> activé, ce qui signifie qu'il sera inaccessible au +<code>HttpOnly</code> activé, ce qui signifie qu'il sera inaccessible au code JavaScript pour les navigateurs qui supportent cette -fonctionnalité.</dd> +fonctionnalité.</dd> </dl> <p>Voici un exemple :</p> @@ -223,63 +223,63 @@ fonctionnalité.</dd> RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.org:1440:/]</pre> -<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 +<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 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 -durée de vie est limitée à 1440 minutes (24 heures), et il sera renvoyé +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 +durée de vie est limitée à 1440 minutes (24 heures), et il sera renvoyé pour tous les URIs.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_dpi" id="flag_dpi">DPI|discardpath</a></h2> <p>Avec le drapeau DPI, la partie PATH_INFO de l'URI -réécrit est supprimée.</p> -<p>Ce drapeau est disponible dans les versions 2.2.12 et supérieures.</p> -<p>Dans un contexte de répertoire, l'URI mis en comparaison par chaque -règle <code class="directive">RewriteRule</code> est la concaténation des +réécrit est supprimée.</p> +<p>Ce drapeau est disponible dans les versions 2.2.12 et supérieures.</p> +<p>Dans un contexte de répertoire, l'URI mis en comparaison par chaque +règle <code class="directive">RewriteRule</code> est la concaténation des valeurs courantes de l'URI et de PATH_INFO.</p> -<p>L'URI courant peut être l'URI initial tel qu'il a été fourni par le -client, le résultat d'une passe précédente du processus de réécriture, -ou le résultat de la règle précédente dans le processus courant de -réécriture.</p> +<p>L'URI courant peut être l'URI initial tel qu'il a été fourni par le +client, le résultat d'une passe précédente du processus de réécriture, +ou le résultat de la règle précédente dans le processus courant de +réécriture.</p> -<p>Par contre, la partie PATH_INFO ajoutée à l'URI avant chaque règle ne -reflète que la valeur de PATH_INFO avant la passe courante du processus -de réécriture. En conséquence, si de larges portions de l'URI +<p>Par contre, la partie PATH_INFO ajoutée à l'URI avant chaque règle ne +reflète que la valeur de PATH_INFO avant la passe courante du processus +de réécriture. En conséquence, si de larges portions de l'URI correspondent et sont traduites via plusieurs directives <code class="directive">RewriteRule</code>, sans prendre en compte quelles parties de l'URI provenaient du PATH_INFO courant, l'URI final pourra se voir ajouter plusieurs copies de PATH_INFO.</p> -<p>Utilisez ce drapeau pour toute substitution où la présence du PATH_INFO qui -résultait de la mise en correspondance précédente de cette requête avec -le système de fichier n'est pas nécessaire. Avec ce drapeau, le -PATH_INFO établi avant que cette passe du processus de réécriture ne -débute est oublié. PATH_INFO ne sera pas recalculé tant que la passe -courante du processus de réécriture ne sera pas achevée. Les règles -suivantes de cette passe ne verront que le résultat direct des -substitutions, sans aucun PATH_INFO ajouté.</p> +<p>Utilisez ce drapeau pour toute substitution où la présence du PATH_INFO qui +résultait de la mise en correspondance précédente de cette requête avec +le système de fichier n'est pas nécessaire. Avec ce drapeau, le +PATH_INFO établi avant que cette passe du processus de réécriture ne +débute est oublié. PATH_INFO ne sera pas recalculé tant que la passe +courante du processus de réécriture ne sera pas achevée. Les règles +suivantes de cette passe ne verront que le résultat direct des +substitutions, sans aucun PATH_INFO ajouté.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_e" id="flag_e">E|env</a></h2> -<p>Avec le drapeau [E], ou [env], vous pouvez définir la valeur d'une +<p>Avec le drapeau [E], ou [env], vous pouvez définir la valeur d'une variable d'environnement. Notez que certaines variables d'environnement -peuvent être définies après le traitement de la règle, annulant par -la-même ce que vous avez défini. Voir le <a href="../env.html">document -sur les variables d'environnement</a> pour plus de détails sur le +peuvent être définies après le traitement de la règle, annulant par +la-même ce que vous avez défini. Voir le <a href="../env.html">document +sur les variables d'environnement</a> pour plus de détails sur le fonctionnement des variables d'environnement.</p> -<p>La syntaxe complète pour ce drapeau est :</p> +<p>La syntaxe complète pour ce drapeau est :</p> <pre class="prettyprint lang-config">[E=!VAR]</pre> -<p><code>VAL</code> peut comporter des références arrières -(<code>$N</code> ou <code>%N</code>) qui seront développées.</p> +<p><code>VAL</code> peut comporter des références arrières +(<code>$N</code> ou <code>%N</code>) qui seront développées.</p> <p>En utilisant la version courte</p> @@ -287,7 +287,7 @@ fonctionnement des variables d'environnement.</p> [E=VAR] </code></p></div> -<p>vous pouvez définir la variable d'environnement nommée +<p>vous pouvez définir la variable d'environnement nommée <code>VAR</code> avec une valeur vide.</p> <p>La forme</p> @@ -296,148 +296,148 @@ fonctionnement des variables d'environnement.</p> [E=!VAR] </code></p></div> -<p>permet d'annuler la définition de la variable <code>VAR</code>.</p> +<p>permet d'annuler la définition de la variable <code>VAR</code>.</p> -<p>Les variables d'environnement s'emploient dans différents contextes, +<p>Les variables d'environnement s'emploient dans différents contextes, comme les programmes CGI, d'autres directives RewriteRule, ou des directives CustomLog.</p> -<p>L'exemple suivant définit une variable d'environnement nommée 'image' -avec une valeur de '1' si l'URI de la requête correspond à un fichier -image. Cette variable d'environnement est ensuite utilisée pour exclure -une telle requête du journal des accès.</p> +<p>L'exemple suivant définit une variable d'environnement nommée 'image' +avec une valeur de '1' si l'URI de la requête correspond à un fichier +image. Cette variable d'environnement est ensuite utilisée pour exclure +une telle requête du journal des accès.</p> <pre class="prettyprint lang-config">RewriteRule "\.(png|gif|jpg)" "-" [E=image:1]<br /> CustomLog "logs/access_log" combined env=!image</pre> -<p>Notez que le même effet peut être obtenu à l'aide de la directive +<p>Notez que le même effet peut être obtenu à l'aide de la directive <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. Cette technique -est présentée à titre d'exemple et non de recommandation.</p> +est présentée à titre d'exemple et non de recommandation.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_end" id="flag_end">END</a></h2> <p>L'utilisation du drapeau [END] permet non seulement de terminer le -processus de réécriture en cours (comme [L]), mais aussi d'empêcher tout -processus de réécriture ultérieur dans un contexte de répertoire +processus de réécriture en cours (comme [L]), mais aussi d'empêcher tout +processus de réécriture ultérieur dans un contexte de répertoire (htaccess).</p> -<p>Ceci ne s'applique pas aux nouvelles requêtes résultant d'une +<p>Ceci ne s'applique pas aux nouvelles requêtes résultant d'une redirection externe.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_f" id="flag_f">F|forbidden</a></h2> <p>L'utilisation du drapeau [F] permet de faire envoyer par le serveur au -client un code de statut "403 Forbidden". Le même effet peut être obtenu à +client un code de statut "403 Forbidden". Le même effet peut être obtenu à l'aide de la directive <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code>, mais ce drapeau offre plus de souplesse dans l'attribution d'un statut Forbidden.</p> -<p>La règle suivante va interdire la téléchargement de fichiers +<p>La règle suivante va interdire la téléchargement de fichiers <code>.exe</code> depuis votre serveur.</p> <pre class="prettyprint lang-config">RewriteRule "\.exe" "-" [F]</pre> -<p>Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce -qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune -raison de réécrire un URI, si vous avez l'intention d'interdire la -requête.</p> +<p>Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce +qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune +raison de réécrire un URI, si vous avez l'intention d'interdire la +requête.</p> -<p>Lorsqu'on utilise [F], [L] est implicite - c'est à dire que la -réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p> +<p>Lorsqu'on utilise [F], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_g" id="flag_g">G|gone</a></h2> <p>Le drapeau [G] permet de faire envoyer par le serveur un code de statut -"410 Gone" avec la réponse. Ce code indique qu'une ressource qui était +"410 Gone" avec la réponse. Ce code indique qu'une ressource qui était disponible auparavant ne l'est plus actuellement.</p> -<p>Comme dans le cas du drapeau [F], on utilise en général la syntaxe -"-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :</p> +<p>Comme dans le cas du drapeau [F], on utilise en général la syntaxe +"-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :</p> <pre class="prettyprint lang-config">RewriteRule "oldproduct" "-" [G,NC]</pre> -<p>Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la -réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p> +<p>Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_h" id="flag_h">H|handler</a></h2> -<p>Force le traitement de la requête résultante par le gestionnaire -spécifié. Par exemple, on peut utiliser ce drapeau pour forcer -l'interprétation de tous les fichiers sans extension par le gestionnaire +<p>Force le traitement de la requête résultante par le gestionnaire +spécifié. Par exemple, on peut utiliser ce drapeau pour forcer +l'interprétation de tous les fichiers sans extension par le gestionnaire php :</p> <pre class="prettyprint lang-config">RewriteRule "!\." "-" [H=application/x-httpd-php]</pre> <p> -L'expression rationnelle ci-dessus - <code>!\.</code> - correspond à -toute requête qui ne contient pas le caractère <code>.</code>. +L'expression rationnelle ci-dessus - <code>!\.</code> - correspond à +toute requête qui ne contient pas le caractère <code>.</code>. </p> <p>On peut aussi utiliser ce drapeau pour forcer l'utilisation d'un certain gestionnaire en fonction de certaines conditions. Par exemple, -l'extrait suivant utilisé dans un contexte de niveau serveur permet de +l'extrait suivant utilisé dans un contexte de niveau serveur permet de faire en sorte que les fichiers <code>.php</code> soient -<em>affichés</em> par <code>mod_php</code> dans le cas où ils font -l'objet d'une requête avec l'extension <code>.phps</code> :</p> +<em>affichés</em> par <code>mod_php</code> dans le cas où ils font +l'objet d'une requête avec l'extension <code>.phps</code> :</p> <pre class="prettyprint lang-config">RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]</pre> <p>L'expression rationnelle ci-dessus - -<code>^(/source/.+\.php)s$</code> - va correspondre à toute requête qui -débutera par <code>/source/</code>, continuera par 1 ou n caractères -puis par <code>.phps</code>. La référence arrière $1 fait référence à la -correspondance capturée entre parenthèses de l'expression +<code>^(/source/.+\.php)s$</code> - va correspondre à toute requête qui +débutera par <code>/source/</code>, continuera par 1 ou n caractères +puis par <code>.phps</code>. La référence arrière $1 fait référence à la +correspondance capturée entre parenthèses de l'expression rationnelle.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_l" id="flag_l">L|last</a></h2> -<p>Lorsque le drapeau [L] est présent, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> -arrête le traitement du jeu de règles. Cela signifie dans la plupart des -situations que si la règle s'applique, aucune autre règle ne sera -traitée. Ce drapeau correspond à la commande Perl <code>last</code>, ou -à la commande <code>break</code> en C. Utilisez ce drapeau pour indiquer -que la règle courante doit être appliquée immédiatement, sans tenir -compte des règles ultérieures.</p> - -<p>Si vous utilisez des règles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans des fichiers +<p>Lorsque le drapeau [L] est présent, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> +arrête le traitement du jeu de règles. Cela signifie dans la plupart des +situations que si la règle s'applique, aucune autre règle ne sera +traitée. Ce drapeau correspond à la commande Perl <code>last</code>, ou +à la commande <code>break</code> en C. Utilisez ce drapeau pour indiquer +que la règle courante doit être appliquée immédiatement, sans tenir +compte des règles ultérieures.</p> + +<p>Si vous utilisez des règles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans des fichiers <code>.htaccess</code> ou des sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, il est important d'avoir quelques -notions sur la manière dont les règles sont traitées. Pour simplifier, -une fois les règles traitées, la requête réécrite est passée à nouveau -au moteur d'interprétation des URLs afin que ce dernier puisse la -traiter. Il est possible qu'au cours du traitement de la requête -réécrite, le fichier <code>.htaccess</code> ou la section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> soient à nouveau -rencontrés, entraînant un nouveau traitement du jeu de règles depuis le -début. Cette situation se présente le plus souvent lorsqu'une des règles -provoque une redirection - interne ou externe - ce qui réinitialise le -traitement de la requête.</p> +notions sur la manière dont les règles sont traitées. Pour simplifier, +une fois les règles traitées, la requête réécrite est passée à nouveau +au moteur d'interprétation des URLs afin que ce dernier puisse la +traiter. Il est possible qu'au cours du traitement de la requête +réécrite, le fichier <code>.htaccess</code> ou la section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> soient à nouveau +rencontrés, entraînant un nouveau traitement du jeu de règles depuis le +début. Cette situation se présente le plus souvent lorsqu'une des règles +provoque une redirection - interne ou externe - ce qui réinitialise le +traitement de la requête.</p> <p>Si vous utilisez des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans un de ces contextes, -il importe par conséquent de prévoir explicitement des étapes permettant -d'éviter un bouclage infini sur les règles, +il importe par conséquent de prévoir explicitement des étapes permettant +d'éviter un bouclage infini sur les règles, et de ne pas compter seulement sur -le drapeau [L] pour terminer l'exécution d'une série de règles, comme -décrit ci-dessous.</p> +le drapeau [L] pour terminer l'exécution d'une série de règles, comme +décrit ci-dessous.</p> <p>Un autre drapeau, [END], permet non seulement d'interrompre le cycle -courant du processus de réécriture, mais aussi d'empêcher toute -réécriture ultérieure dans le contexte de répertoire (htaccess). Ceci ne -s'applique pas aux nouvelles requêtes résultant de redirections +courant du processus de réécriture, mais aussi d'empêcher toute +réécriture ultérieure dans le contexte de répertoire (htaccess). Ceci ne +s'applique pas aux nouvelles requêtes résultant de redirections externes.</p> -<p>Dans l'exemple donné ici, toute requête est réécrite en -<code>index.php</code>, la requête originale étant ajoutée comme chaîne -de requête en argument à <code>index.php</code> ; cependant, la +<p>Dans l'exemple donné ici, toute requête est réécrite en +<code>index.php</code>, la requête originale étant ajoutée comme chaîne +de requête en argument à <code>index.php</code> ; cependant, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> permet de s'assurer que si -la requête concerne déjà <code>index.php</code>, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sera sautée.</p> +la requête concerne déjà <code>index.php</code>, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sera sautée.</p> <pre class="prettyprint lang-config">RewriteBase "/" RewriteCond "%{REQUEST_URI}" !=/index.php @@ -446,127 +446,127 @@ RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]</pre> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_n" id="flag_n">N|next</a></h2> -<p>Le drapeau [N] provoque un redémarrage du traitement des règles -depuis le début, en utilisant le résultat du jeu de règles, sous -réserve qu'il existe un point de démarrage ; à utiliser avec précautions +<p>Le drapeau [N] provoque un redémarrage du traitement des règles +depuis le début, en utilisant le résultat du jeu de règles, sous +réserve qu'il existe un point de démarrage ; à utiliser avec précautions car il peut provoquer un bouclage infini. </p> <p> Le drapeau [Next] peut servir, par exemple, -à remplacer de manière répétitive -une chaîne de caractère ou une lettre dans une requête. Dans l'exemple -suivant, chaque occurence de A sera remplacée par B dans la requête, et -ceci jusqu'il n'y ait plus de A à remplacer. +à remplacer de manière répétitive +une chaîne de caractère ou une lettre dans une requête. Dans l'exemple +suivant, chaque occurence de A sera remplacée par B dans la requête, et +ceci jusqu'il n'y ait plus de A à remplacer. </p> <pre class="prettyprint lang-config">RewriteRule "(.*)A(.*)" "$1B$2" [N]</pre> -<p>Vous pouvez vous représenter ce traitement comme une boucle -<code>while</code> : tant que le modèle de la règle correspond (c'est à +<p>Vous pouvez vous représenter ce traitement comme une boucle +<code>while</code> : tant que le modèle de la règle correspond (c'est à dire, tant que l'URI contient un <code>A</code>), -effectuer la substitution (c'est à dire, remplacer le <code>A</code> par +effectuer la substitution (c'est à dire, remplacer le <code>A</code> par un <code>B</code>).</p> -<p>A partir de la version 2.5.0, ce module renvoie une erreur après -10000 itérations afin d'éviter les boucles infinies. Ce nombre maximum -d'itération peut être modifié via le drapeau N.</p> -<pre class="prettyprint lang-config"># On veut remplacer 1 caractère à chaque itération de la boucle +<p>A partir de la version 2.5.0, ce module renvoie une erreur après +10000 itérations afin d'éviter les boucles infinies. Ce nombre maximum +d'itération peut être modifié via le drapeau N.</p> +<pre class="prettyprint lang-config"># On veut remplacer 1 caractère à chaque itération de la boucle RewriteRule "(.+)[><;]$" "$1" [N=32000] -# ... ou s'arrêter après 10 itérations +# ... ou s'arrêter après 10 itérations RewriteRule "(.+)[><;]$" "$1" [N=10]</pre> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_nc" id="flag_nc">NC|nocase</a></h2> -<p>Avec le drapeau [NC], le modèle de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est comparé à la requête de -manière insensible à la casse. C'est à dire que cette comparaison +<p>Avec le drapeau [NC], le modèle de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est comparé à la requête de +manière insensible à la casse. C'est à dire que cette comparaison s'effectue sans tenir compte des majuscules/minuscules dans l'URI -comparé.</p> +comparé.</p> -<p>Dans l'exemple suivant, toute requête pour un fichier image sera -transmise par Apache à votre serveur d'images dédié. La correspondance est -insensible à la casse, si bien que par exemple, <code>.jpg</code> aussi -bien que <code>.JPG</code> seront acceptés.</p> +<p>Dans l'exemple suivant, toute requête pour un fichier image sera +transmise par Apache à votre serveur d'images dédié. La correspondance est +insensible à la casse, si bien que par exemple, <code>.jpg</code> aussi +bien que <code>.JPG</code> seront acceptés.</p> <pre class="prettyprint lang-config">RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]</pre> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_ne" id="flag_ne">NE|noescape</a></h2> -<p>Par défaut, les caractères spéciaux, comme <code>&</code> et -<code>?</code>, sont convertis en leur équivalent -hexadécimal. Le drapeau [NE] permet d'éviter cette conversion. +<p>Par défaut, les caractères spéciaux, comme <code>&</code> et +<code>?</code>, sont convertis en leur équivalent +hexadécimal. Le drapeau [NE] permet d'éviter cette conversion. </p> <pre class="prettyprint lang-config">RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]</pre> <p> -Dans l'exemple ci-dessus, <code>/anchor/xyz</code> est réécrit en +Dans l'exemple ci-dessus, <code>/anchor/xyz</code> est réécrit en <code>/bigpage.html#xyz</code>. En l'absence du drapeau [NE], le # -aurait été converti en son équivalent hexadécimal, <code>%23</code>, ce -qui aurait provoqué un code d'erreur "404 Not Found". +aurait été converti en son équivalent hexadécimal, <code>%23</code>, ce +qui aurait provoqué un code d'erreur "404 Not Found". </p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_ns" id="flag_ns">NS|nosubreq</a></h2> -<p>Le drapeau [NS] empêche la règle de s'appliquer aux sous-requêtes. +<p>Le drapeau [NS] empêche la règle de s'appliquer aux sous-requêtes. Par exemple, une page incluse au moyen d'une SSI (Server -Side Include) est une sous-requête, et vous ne voudrez probablement pas que -la réécriture s'applique à ces sous-requêtes. Ainsi, lorsque -<code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> recherche des informations à propos des -fichiers par défaut du répertoire (comme les fichiers -<code>index.html</code>), il s'agit d'une sous-requête interne, et vous -ne désirez en général pas que ces sous-requêtes soient réécrites. Cette -réécriture -n'est pas toujours utile pour les sous-requêtes, et peut même causer des -erreurs si l'ensemble du jeu de règles est appliqué. L'utilisation de -ce drapeau permet d'exclure les règles qui peuvent poser problème.</p> - -<p>Comment déterminer si vous devez utiliser cette règle ou non : si -vous préfixez les URLs avec des scripts CGI, afin de forcer leur -traitement par le script CGI, vous vous exposez à des problèmes (ou du -moins à une surcharge significative) avec les sous-requêtes. Dans ces +Side Include) est une sous-requête, et vous ne voudrez probablement pas que +la réécriture s'applique à ces sous-requêtes. Ainsi, lorsque +<code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> recherche des informations à propos des +fichiers par défaut du répertoire (comme les fichiers +<code>index.html</code>), il s'agit d'une sous-requête interne, et vous +ne désirez en général pas que ces sous-requêtes soient réécrites. Cette +réécriture +n'est pas toujours utile pour les sous-requêtes, et peut même causer des +erreurs si l'ensemble du jeu de règles est appliqué. L'utilisation de +ce drapeau permet d'exclure les règles qui peuvent poser problème.</p> + +<p>Comment déterminer si vous devez utiliser cette règle ou non : si +vous préfixez les URLs avec des scripts CGI, afin de forcer leur +traitement par le script CGI, vous vous exposez à des problèmes (ou du +moins à une surcharge significative) avec les sous-requêtes. Dans ces cas, vous devez utiliser ce drapeau.</p> <p> -Les images, scripts java, ou fichiers css, chargés en tant que partie -d'une page html, ne sont pas des sous-requêtes - le navigateur les -appelle sous forme de requêtes HTTP à part entière. +Les images, scripts java, ou fichiers css, chargés en tant que partie +d'une page html, ne sont pas des sous-requêtes - le navigateur les +appelle sous forme de requêtes HTTP à part entière. </p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_p" id="flag_p">P|proxy</a></h2> -<p>L'utilisation du drapeau [P] entraîne le traitement de la requête par -le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, et ceci via une requête de -mandataire. Par exemple, si vous voulez que toutes les requêtes d'images -soient traitées par un serveur d'images annexe, vous pouvez utiliser -une règle de ce style :</p> +<p>L'utilisation du drapeau [P] entraîne le traitement de la requête par +le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, et ceci via une requête de +mandataire. Par exemple, si vous voulez que toutes les requêtes d'images +soient traitées par un serveur d'images annexe, vous pouvez utiliser +une règle de ce style :</p> <pre class="prettyprint lang-config">RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]</pre> <p>L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] - -autrement dit, la requête est immédiatement envoyée au mandataire, et -toute règle ultérieure sera ignorée.</p> +autrement dit, la requête est immédiatement envoyée au mandataire, et +toute règle ultérieure sera ignorée.</p> <p> -Vous devez vous assurer que la chaîne de substitution soit un URI valide -(commençant typiquement par <code>http://</code><em>nom-serveur</em>) -qui puisse être traitée par le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. Dans +Vous devez vous assurer que la chaîne de substitution soit un URI valide +(commençant typiquement par <code>http://</code><em>nom-serveur</em>) +qui puisse être traitée par le module <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. Dans le cas contraire, le module mandataire vous renverra une erreur. -L'utilisation de ce drapeau implémente de manière plus puissante la +L'utilisation de ce drapeau implémente de manière plus puissante la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>, pour -faire correspondre le contenu distant à l'espace de nommage du serveur +faire correspondre le contenu distant à l'espace de nommage du serveur local.</p> <div class="warning"> - <h3>Avertissement à propos de la sécurité</h3> - <p>Lors de la construction de l'URL cible de la règle, il convient - de prendre en compte l'impact en matière de sécurité qu'aura le + <h3>Avertissement à propos de la sécurité</h3> + <p>Lors de la construction de l'URL cible de la règle, il convient + de prendre en compte l'impact en matière de sécurité qu'aura le fait de permettre au client d'influencer le jeu d'URLs pour lesquelles votre serveur agira en tant que mandataire. Assurez-vous que la partie protocole://nom-serveur de l'URL soit @@ -578,12 +578,12 @@ local.</p> <p>Utiliser ce drapeau fait intervenir <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> sans la gestion des connexions persistantes, ce qui signifie que vous obtiendrez des performances meilleurs si vous utilisez <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code>.</p> - <p>Ceci est du au fait que ce drapeau induit l'utilisation du worker par défaut, qui - ne gère pas la mise en commun des connexions.</p> - <p>Partout où cela est possible, préférez l'utilisation de ces directives.</p> + <p>Ceci est du au fait que ce drapeau induit l'utilisation du worker par défaut, qui + ne gère pas la mise en commun des connexions.</p> + <p>Partout où cela est possible, préférez l'utilisation de ces directives.</p> </div> -<p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour pouvoir +<p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour pouvoir utiliser ce drapeau.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> @@ -591,19 +591,19 @@ utiliser ce drapeau.</p> <h2><a name="flag_pt" id="flag_pt">PT|passthrough</a></h2> <p> -Par défaut, la cible (ou chaîne de substitution) d'une règle -RewriteRule est sensée être un chemin de fichier. Avec le drapeau [PT], -par contre, elle est traitée comme un URI. Autrement dit, avec le -drapeau [PT], le résultat de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est passé à nouveau au -système de mise en correspondance des URLs avec le système de fichiers, -de façon à ce que les systèmes de mise en correspondance basés sur les +Par défaut, la cible (ou chaîne de substitution) d'une règle +RewriteRule est sensée être un chemin de fichier. Avec le drapeau [PT], +par contre, elle est traitée comme un URI. Autrement dit, avec le +drapeau [PT], le résultat de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est passé à nouveau au +système de mise en correspondance des URLs avec le système de fichiers, +de façon à ce que les systèmes de mise en correspondance basés sur les chemins de fichiers, comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>, ou <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>, par exemple, puissent avoir une -chance d'accomplir leur tâche. +chance d'accomplir leur tâche. </p> <p> -Si par exemple, vous avez un <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> pour /icons, et une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> qui renvoie vers /icons, -vous devez utiliser le drapeau [PT] pour être sûr que l'<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> sera bien évalué. +Si par exemple, vous avez un <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> pour /icons, et une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> qui renvoie vers /icons, +vous devez utiliser le drapeau [PT] pour être sûr que l'<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> sera bien évalué. </p> <pre class="prettyprint lang-config">Alias "/icons" "/usr/local/apache/icons" @@ -611,64 +611,64 @@ RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]</pre> <p> -Dans l'exemple précédent, en l'absence du drapeau [PT], l'Alias aurait -été ignoré, ce qui aurait provoqué une erreur 'File not found'. +Dans l'exemple précédent, en l'absence du drapeau [PT], l'Alias aurait +été ignoré, ce qui aurait provoqué une erreur 'File not found'. </p> <p>Avec le drapeau <code>PT</code>, le drapeau <code>L</code> est -implicite : la réécriture s'arrêtera afin de transmettre la requête à la +implicite : la réécriture s'arrêtera afin de transmettre la requête à la phase suivante du traitement.</p> <p>Notez que le drapeau <code>PT</code> est implicite dans des contextes -de répertoire comme les sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou les fichiers -<code>.htaccess</code>. Le seul moyen de contourner ceci consiste à -réécrire vers <code>-</code>.</p> +de répertoire comme les sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou les fichiers +<code>.htaccess</code>. Le seul moyen de contourner ceci consiste à +réécrire vers <code>-</code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_qsa" id="flag_qsa">QSA|qsappend</a></h2> <p> -Quand l'URI de remplacement contient une chaîne de requête, le -comportement par défaut de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est de supprimer la <code> -query string</code> (il s'agit des paramètres éventuellement passés dans l'URL après le -caractère <code>?</code>, usuellement pour les formulaires traités par la -méthode HTTP <code>GET</code>) existante, et de la remplacer par celle nouvellement créée. -Avec le drapeau [QSA], les chaînes de requête peuvent être combinées. +Quand l'URI de remplacement contient une chaîne de requête, le +comportement par défaut de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est de supprimer la <code> +query string</code> (il s'agit des paramètres éventuellement passés dans l'URL après le +caractère <code>?</code>, usuellement pour les formulaires traités par la +méthode HTTP <code>GET</code>) existante, et de la remplacer par celle nouvellement créée. +Avec le drapeau [QSA], les chaînes de requête peuvent être combinées. </p> -<p>Considérons la règle suivante :</p> +<p>Considérons la règle suivante :</p> <pre class="prettyprint lang-config">RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]</pre> -<p>Avec le drapeau [QSA], une requête pour -<code>/pages/123?one=two</code> sera réécrite en +<p>Avec le drapeau [QSA], une requête pour +<code>/pages/123?one=two</code> sera réécrite en <code>/page.php?page=123&one=two</code>. Sans le drapeau [QSA], la -même requête sera réécrite en <code>/page.php?page=123</code> - -autrement dit, la chaîne de requête (<code>query string</code>) existante sera supprimée. +même requête sera réécrite en <code>/page.php?page=123</code> - +autrement dit, la chaîne de requête (<code>query string</code>) existante sera supprimée. </p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_qsd" id="flag_qsd">QSD|qsdiscard</a></h2> <p> -Lorsque l'URI de la requête contient une chaîne de paramètres, et si -l'URI cible n'en contient pas, le comportement par défaut de la -directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> consiste à copier cette -chaîne de paramètres dans l'URI cible. Avec le drapeau [QSD], la chaîne -de paramètres est supprimée. +Lorsque l'URI de la requête contient une chaîne de paramètres, et si +l'URI cible n'en contient pas, le comportement par défaut de la +directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> consiste à copier cette +chaîne de paramètres dans l'URI cible. Avec le drapeau [QSD], la chaîne +de paramètres est supprimée. </p> -<p>Ce drapeau est disponible dans les versions 2.4.0 et supérieures.</p> +<p>Ce drapeau est disponible dans les versions 2.4.0 et supérieures.</p> <p> -Lorsque les drapeaux [QSD] et [QSA] sont utilisés ensemble, c'est le +Lorsque les drapeaux [QSD] et [QSA] sont utilisés ensemble, c'est le drapeau [QSD] qui l'emporte. </p> <p> -Si l'URI cible possède une chaîne de paramètres, le comportement par -défaut sera respecté - c'est à dire que la chaîne de paramètres -originale sera supprimée et remplacée par la chaîne de paramètres de +Si l'URI cible possède une chaîne de paramètres, le comportement par +défaut sera respecté - c'est à dire que la chaîne de paramètres +originale sera supprimée et remplacée par la chaîne de paramètres de l'URI cible. </p> @@ -677,52 +677,52 @@ l'URI cible. <h2><a name="flag_r" id="flag_r">R|redirect</a></h2> <p> L'utilisation du drapeau [R] provoque l'envoi d'une redirection au -navigateur. Si une URL pleinement qualifiée (FQDN - fully qualified domain name) - est spécifiée (c'est à dire incluant <code>http://nom-du-serveur/</code>), - une redirection sera effectuée vers cette adresse. Dans le cas contraire, - le protocole courant, le nom du serveur et le numéro de port seront - utilisés pour générer l'URL envoyée avec la redirection. +navigateur. Si une URL pleinement qualifiée (FQDN - fully qualified domain name) + est spécifiée (c'est à dire incluant <code>http://nom-du-serveur/</code>), + une redirection sera effectuée vers cette adresse. Dans le cas contraire, + le protocole courant, le nom du serveur et le numéro de port seront + utilisés pour générer l'URL envoyée avec la redirection. </p> -<p><em>Tout</em> code de statut de réponse HTTP valide peut être -spécifié, en utilisant la syntaxe [R=305], le code de statut 302 étant -utilisé par défaut si aucun code n'est spécifié. Le code de statut -spécifié n'est pas nécessairement un code de statut +<p><em>Tout</em> code de statut de réponse HTTP valide peut être +spécifié, en utilisant la syntaxe [R=305], le code de statut 302 étant +utilisé par défaut si aucun code n'est spécifié. Le code de statut +spécifié n'est pas nécessairement un code de statut de redirection (3xx). Cependant, si le code de statut est en dehors de la plage des codes de -redirection (300-399), la chaîne de substitution est entièrement -supprimée, et la réécriture s'arrête comme si le drapeau <code>L</code> -était utilisé.</p> +redirection (300-399), la chaîne de substitution est entièrement +supprimée, et la réécriture s'arrête comme si le drapeau <code>L</code> +était utilisé.</p> -<p>En plus des codes de statut de réponse, vous pouvez spécifier les +<p>En plus des codes de statut de réponse, vous pouvez spécifier les codes de redirection en utilisant leurs noms symboliques : -<code>temp</code> (défaut), <code>permanent</code>, ou +<code>temp</code> (défaut), <code>permanent</code>, ou <code>seeother</code>.</p> <p> -Vous utiliserez presque toujours [R] en conjonction avec [L] (c'est à -dire [R,L]), car employé seul, le drapeau [R] préfixe l'URI avec -<code>http://cet-hôte[:ce-port]</code>, mais passe ensuite cette adresse -à la règle suivante, ce qui provoquera le plus souvent des +Vous utiliserez presque toujours [R] en conjonction avec [L] (c'est à +dire [R,L]), car employé seul, le drapeau [R] préfixe l'URI avec +<code>http://cet-hôte[:ce-port]</code>, mais passe ensuite cette adresse +à la règle suivante, ce qui provoquera le plus souvent des avertissements 'Invalid URI in request'. </p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_s" id="flag_s">S|skip</a></h2> -<p>Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir -exécuter. La syntaxe du drapeau [S] est [S=<em>N</em>], où -<em>N</em> correspond au nombre de règles à sauter (sous -réserve que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> corresponde et qu'au moins +<p>Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir +exécuter. La syntaxe du drapeau [S] est [S=<em>N</em>], où +<em>N</em> correspond au nombre de règles à sauter (sous +réserve que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> corresponde et qu'au moins une condition <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> -préalable soit vérifiée). -Ceci peut s'interpréter comme une instruction -<code>goto</code> dans votre jeu de règles de réécriture. Dans -l'exemple suivant, nous ne voulons exécuter la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> que si l'URI demandé ne -correspond pas à un fichier existant.</p> -<pre class="prettyprint lang-config"># La requête concerne-t-elle un fichier qui n'existe pas ? +préalable soit vérifiée). +Ceci peut s'interpréter comme une instruction +<code>goto</code> dans votre jeu de règles de réécriture. Dans +l'exemple suivant, nous ne voulons exécuter la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> que si l'URI demandé ne +correspond pas à un fichier existant.</p> +<pre class="prettyprint lang-config"># La requête concerne-t-elle un fichier qui n'existe pas ? RewriteCond "%{REQUEST_FILENAME}" !-f RewriteCond "%{REQUEST_FILENAME}" !-d -# Si c'est la cas, on saute les deux règles de réécriture suivantes +# Si c'est la cas, on saute les deux règles de réécriture suivantes RewriteRule ".?" "-" [S=2] RewriteRule "(.*\.gif)" "images.php?$1" @@ -731,14 +731,14 @@ RewriteRule "(.*\.html)" "docs.php?$1"</pre> -<p>Cette technique trouve son utilité dans le fait qu'une directive +<p>Cette technique trouve son utilité dans le fait qu'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ne s'applique -qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez -qu'une directive <code>RewriteCond</code> s'applique à plusieurs règles -<code>RewriteRule</code>, une technique possible consiste à inverser ces +qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez +qu'une directive <code>RewriteCond</code> s'applique à plusieurs règles +<code>RewriteRule</code>, une technique possible consiste à inverser ces conditions et ajouter une <code>RewriteRule</code> avec le drapeau [Skip]. Cette technique permet -d'élaborer des pseudo-constructions if-then-else : la dernière règle du -bloc then contiendra <code>skip=N</code>, où N est le nombre de règles +d'élaborer des pseudo-constructions if-then-else : la dernière règle du +bloc then contiendra <code>skip=N</code>, où N est le nombre de règles contenues dans le bloc else :</p> <pre class="prettyprint lang-config"># Est-ce que le fichier existe ? RewriteCond "%{REQUEST_FILENAME}" !-f @@ -756,24 +756,24 @@ RewriteRule "(.*)" "404.php?file=$1" # END</pre> -<p>Il est probablement plus aisé de définir ce genre de configuration +<p>Il est probablement plus aisé de définir ce genre de configuration via les directives <code class="directive"><If></code>, <code class="directive"><ElseIf></code>, et <code class="directive"><Else></code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="flag_t" id="flag_t">T|type</a></h2> -<p>Définit le type MIME de la réponse résultante renvoyée. L'effet est -identique à celui de la directive <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code>.</p> +<p>Définit le type MIME de la réponse résultante renvoyée. L'effet est +identique à celui de la directive <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code>.</p> <p>Par exemple, vous pouvez utiliser la technique suivante pour servir du code source Perl en tant que plein texte, s'il est requis d'une -certaine manière :</p> +certaine manière :</p> <pre class="prettyprint lang-config"># Sert les fichier .pl en tant que plein texte RewriteRule "\.pl$" "-" [T=text/plain]</pre> -<p>Ou encore, si vous possédez une caméra qui produit des fichiers +<p>Ou encore, si vous possédez une caméra qui produit des fichiers images jpeg sans extension, vous pouvez forcer le renvoi de ces images avec le type MIME correct en se basant sur le nom du fichier :</p> @@ -781,25 +781,25 @@ avec le type MIME correct en se basant sur le nom du fichier :</p> RewriteRule "IMG" "-" [T=image/jpg]</pre> -<p>Notez cependant qu'il s'agit d'un exemple trivial, et que le problème -aurait pu être résolu en utilisant à la place la directive <code class="directive"><a href="../mod/core.html#filesmatch"><FilesMatch></a></code>. Il faut toujours -envisager la possibilité d'une solution alternative à un problème avant -d'avoir recours à la réécriture, qui sera toujours moins efficace qu'une +<p>Notez cependant qu'il s'agit d'un exemple trivial, et que le problème +aurait pu être résolu en utilisant à la place la directive <code class="directive"><a href="../mod/core.html#filesmatch"><FilesMatch></a></code>. Il faut toujours +envisager la possibilité d'une solution alternative à un problème avant +d'avoir recours à la réécriture, qui sera toujours moins efficace qu'une solution alternative.</p> <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 -sera perdu suite à un retraitement interne (y compris les séquences de -réécriture suivantes de mod_rewrite). 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> +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 +sera perdu suite à un retraitement interne (y compris les séquences de +réécriture suivantes de mod_rewrite). 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> </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/flags.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/flags.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/flags.html" title="Français"> fr </a></p> </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; @@ -818,7 +818,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/flags.html } })(window, document); //--><!]]></script></div><div id="footer"> -<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); diff --git a/docs/manual/rewrite/index.html b/docs/manual/rewrite/index.html index a5c3a44835..8ca10c00c5 100644 --- a/docs/manual/rewrite/index.html +++ b/docs/manual/rewrite/index.html @@ -6,7 +6,7 @@ Content-type: text/html; charset=ISO-8859-1 URI: index.html.fr Content-Language: fr -Content-type: text/html; charset=ISO-8859-1 +Content-type: text/html; charset=UTF-8 URI: index.html.tr.utf8 Content-Language: tr diff --git a/docs/manual/rewrite/index.html.fr b/docs/manual/rewrite/index.html.fr index 63981c5151..ffe5b755a0 100644 --- a/docs/manual/rewrite/index.html.fr +++ b/docs/manual/rewrite/index.html.fr @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> -<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT @@ -24,84 +24,84 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Le module Apache mod_rewrite</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/" title="Français"> fr </a> | -<a href="../tr/rewrite/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | +<a href="../fr/rewrite/" title="Français"> fr </a> | +<a href="../tr/rewrite/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | <a href="../zh-cn/rewrite/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> </div> - <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> permet de modifier les requêtes - entrantes dynamiquement, en fonction de règles manipulant des <a href="intro.html#regex">expressions rationnelles</a>. Vous pouvez - ainsi relier des URLs arbitraires à votre propre structure d'URLs + <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> permet de modifier les requêtes + entrantes dynamiquement, en fonction de règles manipulant des <a href="intro.html#regex">expressions rationnelles</a>. Vous pouvez + ainsi relier des URLs arbitraires à votre propre structure d'URLs interne comme vous le souhaitez.</p> <p>Il fournit un - mécanisme de manipulation d'URL particulièrement souple et - puissant en supportant un nombre illimité de règles et de - conditions attachées à chaque règle. Les manipulations d'URLs - peuvent dépendre de tests variés : les URLs peuvent - être finement caractérisées en fonction de variables du serveur, - de variables d'environnement, d'en-têtes HTTP, de repères - temporels, de recherches dans des bases de données - externes, ou même de requêtes vers des bases de données externes - et de différents gestionnaires ou programmes externes.</p> + mécanisme de manipulation d'URL particulièrement souple et + puissant en supportant un nombre illimité de règles et de + conditions attachées à chaque règle. Les manipulations d'URLs + peuvent dépendre de tests variés : les URLs peuvent + être finement caractérisées en fonction de variables du serveur, + de variables d'environnement, d'en-têtes HTTP, de repères + temporels, de recherches dans des bases de données + externes, ou même de requêtes vers des bases de données externes + et de différents gestionnaires ou programmes externes.</p> - <p>Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin - et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal + <p>Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin + et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal (<code>httpd.conf</code>), mais aussi dans le contexte des serveurs virtuels (sections <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>), ou dans le contexte des - répertoires (fichiers <code>.htaccess</code> et blocs - <code><Directory></code>. Le résultat - réécrit peut conduire vers d'autres règles à un - traitement secondaire interne, une redirection vers une requête - externe ou même l'envoi vers un serveur mandataire, en fonction + répertoires (fichiers <code>.htaccess</code> et blocs + <code><Directory></code>. Le résultat + réécrit peut conduire vers d'autres règles à un + traitement secondaire interne, une redirection vers une requête + externe ou même l'envoi vers un serveur mandataire, en fonction des <a href="flags.html">drapeaux</a> que vous attachez aux - règles</p> + règles</p> - <p>mod_rewrite étant très puissant, il peut par - conséquent être très complexe. Ce document - complète la <a href="../mod/mod_rewrite.html">documentation de - référence du module mod_rewrite</a>, et est sensé alléger un - peu cette complexité, et présenter des exemples largement - commentés, ainsi que des situations courantes que vous + <p>mod_rewrite étant très puissant, il peut par + conséquent être très complexe. Ce document + complète la <a href="../mod/mod_rewrite.html">documentation de + référence du module mod_rewrite</a>, et est sensé alléger un + peu cette complexité, et présenter des exemples largement + commentés, ainsi que des situations courantes que vous pourrez traiter avec mod_rewrite. Mais nous voulons aussi vous - montrer des situations où vous ne devrez pas utiliser - mod_rewrite, et lui préférer d'autres - fonctionnalités standard d'Apache, évitant ainsi - d'entrer dans une complexité inutile.</p> + montrer des situations où vous ne devrez pas utiliser + mod_rewrite, et lui préférer d'autres + fonctionnalités standard d'Apache, évitant ainsi + d'entrer dans une complexité inutile.</p> <ul> <li><a href="../mod/mod_rewrite.html">documentation de -référence de mod_rewrite</a></li> -<li><a href="intro.html">Introduction aux expressions rationnelles et à +référence de mod_rewrite</a></li> +<li><a href="intro.html">Introduction aux expressions rationnelles et à mod_rewrite</a></li> -<li><a href="flags.html">Drapeaux de réécriture</a></li> +<li><a href="flags.html">Drapeaux de réécriture</a></li> <li><a href="rewritemap.html">Utilisation de RewriteMap</a></li> <li><a href="avoid.html">Quand <strong>NE PAS</strong> utiliser mod_rewrite</a></li> <li><a href="remapping.html">Utilisation de mod_rewrite pour la -redirection et la remise en correspondance avec le système de +redirection et la remise en correspondance avec le système de fichiers des URLs</a></li> <li><a href="access.html">Utilisation de mod_rewrite pour le -contrôle d'accès</a></li> +contrôle d'accès</a></li> <li><a href="vhosts.html">Les serveurs virtuels dynamiques avec mod_rewrite</a></li> <li><a href="proxy.html">Les serveurs mandataires dynamiques avec mod_rewrite</a></li> -<li><a href="advanced.html">Techniques avancées</a></li> -<li><a href="tech.html">Détails techniques</a></li> +<li><a href="advanced.html">Techniques avancées</a></li> +<li><a href="tech.html">Détails techniques</a></li> </ul> </div> <div id="quickview"><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation de -référence de mod_rewrite</a></li><li><a href="../urlmapping.html">Mise en correspondance des URLs -avec le système de fichiers</a></li><li><a href="http://wiki.apache.org/httpd/Rewrite">wiki mod_rewrite +référence de mod_rewrite</a></li><li><a href="../urlmapping.html">Mise en correspondance des URLs +avec le système de fichiers</a></li><li><a href="http://wiki.apache.org/httpd/Rewrite">wiki mod_rewrite </a></li><li><a href="../glossary.html">Glossaire</a></li></ul></div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/" title="Français"> fr </a> | -<a href="../tr/rewrite/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | +<a href="../fr/rewrite/" title="Français"> fr </a> | +<a href="../tr/rewrite/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | <a href="../zh-cn/rewrite/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> </div><div id="footer"> -<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); diff --git a/docs/manual/rewrite/intro.html b/docs/manual/rewrite/intro.html index b83f88363c..2a5588c67a 100644 --- a/docs/manual/rewrite/intro.html +++ b/docs/manual/rewrite/intro.html @@ -6,4 +6,4 @@ Content-type: text/html; charset=ISO-8859-1 URI: intro.html.fr Content-Language: fr -Content-type: text/html; charset=ISO-8859-1 +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/rewrite/intro.html.fr b/docs/manual/rewrite/intro.html.fr index 6b2dad9d83..2cead84382 100644 --- a/docs/manual/rewrite/intro.html.fr +++ b/docs/manual/rewrite/intro.html.fr @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> -<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT @@ -24,78 +24,78 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Introduction au module Apache mod_rewrite</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/intro.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/intro.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/intro.html" title="Français"> fr </a></p> </div> -<p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module -<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit les concepts de base dont la -connaissance est nécessaire pour l'utilisation de +<p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module +<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit les concepts de base dont la +connaissance est nécessaire pour l'utilisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. D'autres documents entrent d'avantage dans -les détails, mais celui-ci devrait aider le débutant à se mouiller les +les détails, mais celui-ci devrait aider le débutant à se mouiller les pieds. </p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#regex">Expressions rationnelles</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#rewriterule">Les bases des règles de réécriture</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#flags">Drapeaux de réécriture</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">Conditions de réécriture</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#rewritemap">Tables de réécriture</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#rewriterule">Les bases des règles de réécriture</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#flags">Drapeaux de réécriture</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">Conditions de réécriture</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#rewritemap">Tables de réécriture</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#htaccess">Fichiers .htaccess</a></li> </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en -correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> +correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="introduction" id="introduction">Introduction</a></h2> <p>Le module Apache <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est un module puissant -et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous -pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous -avez besoin. Il est cependant assez complexe, et peut paraître -intimidant au débutant. Certains ont aussi tendance à traiter les -règles de réécriture comme des incantations magiques, et à les utiliser -sans vraiment comprendre leur manière d'agir.</p> - -<p>Ce document a pour ambition d'être suffisamment explicite pour -permettre la compréhension, et non la copie en aveugle, de ce qui suit. +et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous +pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous +avez besoin. Il est cependant assez complexe, et peut paraître +intimidant au débutant. Certains ont aussi tendance à traiter les +règles de réécriture comme des incantations magiques, et à les utiliser +sans vraiment comprendre leur manière d'agir.</p> + +<p>Ce document a pour ambition d'être suffisamment explicite pour +permettre la compréhension, et non la copie en aveugle, de ce qui suit. </p> -<p>Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs -courantes n'ont pas besoin de la puissance et de la complexité de -<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour les tâches simples, voir +<p>Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs +courantes n'ont pas besoin de la puissance et de la complexité de +<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour les tâches simples, voir <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et la documentation sur la <a href="../urlmapping.html">Mise en correspondance des URLs avec le -système de fichiers</a>.</p> +système de fichiers</a>.</p> -<p>Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de -journalisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> à un des niveaux de trace +<p>Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de +journalisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> à un des niveaux de trace via la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>. Bien que -ceci risque de vous submerger sous une énorme quantité d'informations, -le débogage des problèmes avec la configuration de -<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est à ce prix car vous verrez alors -exactement comment chaque règle est traitée.</p> +ceci risque de vous submerger sous une énorme quantité d'informations, +le débogage des problèmes avec la configuration de +<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est à ce prix car vous verrez alors +exactement comment chaque règle est traitée.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="regex" id="regex">Expressions rationnelles</a></h2> <p>mod_rewrite utilise le vocabulaire des <a href="http://pcre.org/">Expressions rationnelles compatibles Perl</a>. -Ce document n'a pas pour prétention d'être une référence détaillée des +Ce document n'a pas pour prétention d'être une référence détaillée des expressions rationnelles. A cet effet, nous recommandons les <a href="http://pcre.org/pcre.txt">pages de manuel de PCRE</a>, la <a href="http://perldoc.perl.org/perlre.html">page de manuel des expressions rationnelles Perl</a>, et l'ouvrage <a href="http://shop.oreilly.com/product/9780596528126.do">Mastering Regular Expressions, by Jeffrey Friedl</a>.</p> <p>Dans ce document, nous avons pour but de vous fournir suffisamment de -vocabulaire des expressions rationnelles pour vous mettre le pied à -l'étrier, sans être dépassé, en espérant que les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> vous apparaîtront comme des -formules scientifiques, plutôt que comme des incantations magiques.</p> +vocabulaire des expressions rationnelles pour vous mettre le pied à +l'étrier, sans être dépassé, en espérant que les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> vous apparaîtront comme des +formules scientifiques, plutôt que comme des incantations magiques.</p> <h3><a name="regexvocab" id="regexvocab">Vocabulaire des expressions rationnelles</a></h3> -<p>Vous trouverez dans ce qui suit le minimum à connaître pour être en -mesure d'écrire des expressions rationnelles et des règles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Ceci ne représente +<p>Vous trouverez dans ce qui suit le minimum à connaître pour être en +mesure d'écrire des expressions rationnelles et des règles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Ceci ne représente certainement pas un vocabulaire des expressions rationnelles complet, -mais constitue un bon point de départ, et devrait vous aider à -déchiffrer les expressions rationnelles simples, et à écrire vos propres +mais constitue un bon point de départ, et devrait vous aider à +déchiffrer les expressions rationnelles simples, et à écrire vos propres expressions.</p> <table> @@ -105,127 +105,127 @@ expressions.</p> <th>Exemple</th> </tr> -<tr><td><code>.</code></td><td>Correspond à tout caractère unique -</td><td><code>c.t</code> correspondra à <code>cat</code>, +<tr><td><code>.</code></td><td>Correspond à tout caractère unique +</td><td><code>c.t</code> correspondra à <code>cat</code>, <code>cot</code>, <code>cut</code>, etc.</td></tr> -<tr><td><code>+</code></td><td>Répète le caractère de correspondance -précédent une ou plusieurs fois</td> -<td><code>a+</code> correspond à <code>a</code>, <code>aa</code>, +<tr><td><code>+</code></td><td>Répète le caractère de correspondance +précédent une ou plusieurs fois</td> +<td><code>a+</code> correspond à <code>a</code>, <code>aa</code>, <code>aaa</code>, etc.</td></tr> -<tr><td><code>*</code></td><td>Répète le caractère de correspondance -précédent zéro ou plusieurs fois</td> -<td><code>a*</code> correspond à tout ce à quoi correspond -<code>a+</code>, mais correspond aussi à la chaîne vide.</td></tr> +<tr><td><code>*</code></td><td>Répète le caractère de correspondance +précédent zéro ou plusieurs fois</td> +<td><code>a*</code> correspond à tout ce à quoi correspond +<code>a+</code>, mais correspond aussi à la chaîne vide.</td></tr> <tr><td><code>?</code></td><td>Rend la correspondance optionnelle.</td><td> -<code>colou?r</code> correspondra à <code>color</code> et <code>colour</code>.</td> +<code>colou?r</code> correspondra à <code>color</code> et <code>colour</code>.</td> </tr> -<tr><td><code>^</code></td><td>Appelé ancrage, correspond au début de la -chaîne</td> -<td><code>^a</code> correspond à une chaîne qui commence par +<tr><td><code>^</code></td><td>Appelé ancrage, correspond au début de la +chaîne</td> +<td><code>^a</code> correspond à une chaîne qui commence par <code>a</code></td></tr> -<tr><td><code>$</code></td><td>L'autre ancrage, correspond à la fin de -la chaîne.</td> -<td><code>a$</code> correspond à une chaîne qui se termine par +<tr><td><code>$</code></td><td>L'autre ancrage, correspond à la fin de +la chaîne.</td> +<td><code>a$</code> correspond à une chaîne qui se termine par <code>a</code>.</td></tr> -<tr><td><code>( )</code></td><td>Regroupe plusieurs caractères en une -seule entité, et conserve une correspondance à des fins d'utilisation -dans une référence arrière.</td> +<tr><td><code>( )</code></td><td>Regroupe plusieurs caractères en une +seule entité, et conserve une correspondance à des fins d'utilisation +dans une référence arrière.</td> <td><code>(ab)+</code> -correspond à <code>ababab</code> - à savoir, le <code>+</code> +correspond à <code>ababab</code> - à savoir, le <code>+</code> s'applique au groupe. -Pour plus de détails sur les références arrières, voir <a href="#InternalBackRefs">ci-dessous</a>.</td></tr> -<tr><td><code>[ ]</code></td><td>Une classe de caractères - correspond à -un des caractères de la classe</td> -<td><code>c[uoa]t</code> correspond à <code>cut</code>, +Pour plus de détails sur les références arrières, voir <a href="#InternalBackRefs">ci-dessous</a>.</td></tr> +<tr><td><code>[ ]</code></td><td>Une classe de caractères - correspond à +un des caractères de la classe</td> +<td><code>c[uoa]t</code> correspond à <code>cut</code>, <code>cot</code> ou <code>cat</code>.</td></tr> -<tr><td><code>[^ ]</code></td><td>Négation de la classe de caractères - -correspond à tout caractère ne faisant pas partie de la classe</td> -<td><code>c[^/]t</code> correspond à <code>cat</code> ou -<code>c=t</code> mais pas à <code>c/t</code></td></tr> +<tr><td><code>[^ ]</code></td><td>Négation de la classe de caractères - +correspond à tout caractère ne faisant pas partie de la classe</td> +<td><code>c[^/]t</code> correspond à <code>cat</code> ou +<code>c=t</code> mais pas à <code>c/t</code></td></tr> </table> -<p>Avec <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, le caractère <code>!</code> peut -préfixer une expression rationnelle afin d'en exprimer la négation. -Autrement dit, une chaîne ne correspondra que si elle ne correspond pas -à l'expression située après le <code>!</code>.</p> +<p>Avec <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, le caractère <code>!</code> peut +préfixer une expression rationnelle afin d'en exprimer la négation. +Autrement dit, une chaîne ne correspondra que si elle ne correspond pas +à l'expression située après le <code>!</code>.</p> -<h3><a name="InternalBackRefs" id="InternalBackRefs">Disponibilité des références -arrières dans les expressions rationnelles</a></h3> +<h3><a name="InternalBackRefs" id="InternalBackRefs">Disponibilité des références +arrières dans les expressions rationnelles</a></h3> <p>Vous devez vous souvenir d'une chose importante : chaque fois - que vous utilisez des parenthèses dans un <em>Modèle</em> ou dans - un des <em>modèles de conditions</em>, des références arrières - sont créées en interne et peuvent être rappelées via les chaînes + que vous utilisez des parenthèses dans un <em>Modèle</em> ou dans + un des <em>modèles de conditions</em>, des références arrières + sont créées en interne et peuvent être rappelées via les chaînes <code>$N</code> et <code>%N</code> (voir ci-dessous). Ces - références sont disponibles lors de la - création de la chaîne de substitution d'une directive + références sont disponibles lors de la + création de la chaîne de substitution d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ou de la - chaîne de test d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</p> - <p>Les captures dans les modèles de directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont paradoxalement - disponibles dans toutes les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> qui précèdent, car - les expressions des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont évaluées avant + chaîne de test d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</p> + <p>Les captures dans les modèles de directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont paradoxalement + disponibles dans toutes les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> qui précèdent, car + les expressions des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont évaluées avant les conditions individuelles.</p> - <p>La figure 1 montre à quels endroits les - références arrières sont suceptibles - d'être développées, et illustre le flux des comparaisons - effectuées par les règles RewriteRule et + <p>La figure 1 montre à quels endroits les + références arrières sont suceptibles + d'être développées, et illustre le flux des comparaisons + effectuées par les règles RewriteRule et RewriteCond. Dans les chapitres suivants, nous examinerons comment - utiliser ces références arrières, donc ne vous affolez pas si + utiliser ces références arrières, donc ne vous affolez pas si elles vous paraissent un peu exotiques au premier abord.</p> <p class="figure"> - <img src="../images/rewrite_backreferences.png" alt="Flux des comparaisons effectuées par les règles RewriteRule et RewriteCond" /><br /> - <dfn>Figure 1 :</dfn> Le cheminement d'une référence arrière à - travers une règle.<br /> - Dans cet exemple, une requête pour <code>/test/1234</code> serait - transformée en + <img src="../images/rewrite_backreferences.png" alt="Flux des comparaisons effectuées par les règles RewriteRule et RewriteCond" /><br /> + <dfn>Figure 1 :</dfn> Le cheminement d'une référence arrière à + travers une règle.<br /> + Dans cet exemple, une requête pour <code>/test/1234</code> serait + transformée en <code>/admin.foo?page=test&id=1234&host=admin.example.com</code>. </p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="rewriterule" id="rewriterule">Les bases des règles de réécriture</a></h2> -<p>Une règle de réécriture <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est constituée de trois -arguments séparés par des espaces. Les arguments sont :</p> +<h2><a name="rewriterule" id="rewriterule">Les bases des règles de réécriture</a></h2> +<p>Une règle de réécriture <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est constituée de trois +arguments séparés par des espaces. Les arguments sont :</p> <ol> -<li><var>Modèle</var>: le modèle des URLs auxquelles la règle doit +<li><var>Modèle</var>: le modèle des URLs auxquelles la règle doit s'appliquer;</li> -<li><var>Substitution</var>: vers quoi la requête correspondante doit être -transformée;</li> -<li><var>[drapeaux]</var>: options affectant la requête réécrite.</li> +<li><var>Substitution</var>: vers quoi la requête correspondante doit être +transformée;</li> +<li><var>[drapeaux]</var>: options affectant la requête réécrite.</li> </ol> -<p>Le <var>Modèle</var> est une <a href="#regex">expression -rationnelle</a>. Au sein de la première règle de réécriture, ou jusqu'à -ce qu'une substitution survienne, elle est comparée au chemin de -l'URL de la requête entrante (la -partie située après le nom d'hôte mais avant tout point d'interrogation -qui indique le début d'une chaîne de paramètres de -requête) ou, dans un contexte de répertoire, au chemin de la -requête relativement au répertoire pour lequel la -règle est définie. Lorsqu'une substitution a eu lieu, les -règles suivantes effectuent leurs comparaisons par rapport à la valeur -substituée.</p> +<p>Le <var>Modèle</var> est une <a href="#regex">expression +rationnelle</a>. Au sein de la première règle de réécriture, ou jusqu'à +ce qu'une substitution survienne, elle est comparée au chemin de +l'URL de la requête entrante (la +partie située après le nom d'hôte mais avant tout point d'interrogation +qui indique le début d'une chaîne de paramètres de +requête) ou, dans un contexte de répertoire, au chemin de la +requête relativement au répertoire pour lequel la +règle est définie. Lorsqu'une substitution a eu lieu, les +règles suivantes effectuent leurs comparaisons par rapport à la valeur +substituée.</p> <p class="figure"> <img src="../images/syntax_rewriterule.png" alt="Syntaxe de la directive RewriteRule" /><br /> <dfn>Figure 2 :</dfn> Syntaxe de la directive RewriteRule. </p> -<p>La chaîne de <var>Substitution</var> peut, quant à elle, être de +<p>La chaîne de <var>Substitution</var> peut, quant à elle, être de trois types :</p> <dl> -<dt>Un chemin complet du système de fichiers vers une ressource</dt> +<dt>Un chemin complet du système de fichiers vers une ressource</dt> <dd> <pre class="prettyprint lang-config">RewriteRule "^/jeux" "/usr/local/jeux/web"</pre> -<p>Ceci peut faire correspondre une requête à toute localisation voulue de -votre système de fichiers, un peu comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>.</p> +<p>Ceci peut faire correspondre une requête à toute localisation voulue de +votre système de fichiers, un peu comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>.</p> </dd> <dt>Un chemin web vers une ressource</dt> @@ -233,8 +233,8 @@ votre système de fichiers, un peu comme la directive <code class="directive"><a <pre class="prettyprint lang-config">RewriteRule "^/foo$" "/bar"</pre> <p>Si la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> a -pour valeur <code>/usr/local/apache2/htdocs</code>, cette règle va faire -correspondre les requêtes pour <code>http://example.com/foo</code> au +pour valeur <code>/usr/local/apache2/htdocs</code>, cette règle va faire +correspondre les requêtes pour <code>http://example.com/foo</code> au chemin <code>/usr/local/apache2/htdocs/bar</code>.</p> </dd> @@ -242,52 +242,52 @@ chemin <code>/usr/local/apache2/htdocs/bar</code>.</p> <dd> <pre class="prettyprint lang-config">RewriteRule "^/produits/vues$" "http://site2.example.com/voirproduits.html" [R]</pre> -<p>Ceci informe le client qu'il doit effectuer une nouvelle requête vers -l'URL spécifiée.</p> +<p>Ceci informe le client qu'il doit effectuer une nouvelle requête vers +l'URL spécifiée.</p> </dd> </dl> -<p>La chaîne de <var>Substitution</var> peut aussi contenir des -<em>références arrières</em> vers des parties du chemin d'URL entrant -correspondant au <var>Modèle</var>. Considérons ce qui suit :</p> +<p>La chaîne de <var>Substitution</var> peut aussi contenir des +<em>références arrières</em> vers des parties du chemin d'URL entrant +correspondant au <var>Modèle</var>. Considérons ce qui suit :</p> <pre class="prettyprint lang-config">RewriteRule "^/produits/(.*)/view$" "/var/web/produitsdb/$1"</pre> -<p>La variable <code>$1</code> sera remplacée par tout texte -correspondant à l'expression située entre les parenthèses dans le -<var>Modèle</var>. Par exemple, une requête pour +<p>La variable <code>$1</code> sera remplacée par tout texte +correspondant à l'expression située entre les parenthèses dans le +<var>Modèle</var>. Par exemple, une requête pour <code>http://example.com/produits/r14df/vue</code> correspondra au chemin <code>/var/web/produitsdb/r14df</code>.</p> -<p>S'il y a plus d'une expression entre parenthèses, elle seront +<p>S'il y a plus d'une expression entre parenthèses, elle seront accessibles selon leur ordre d'apparition via les variables <code>$1</code>, <code>$2</code>, <code>$3</code>, etc...</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="flags" id="flags">Drapeaux de réécriture</a></h2> -<p>Le comportement d'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par la -présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les -conditions de correspondance d'une règle peuvent être rendues -insensibles à la casse par la présence du drapeau <code>[NC]</code> : +<h2><a name="flags" id="flags">Drapeaux de réécriture</a></h2> +<p>Le comportement d'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par la +présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les +conditions de correspondance d'une règle peuvent être rendues +insensibles à la casse par la présence du drapeau <code>[NC]</code> : </p> <pre class="prettyprint lang-config">RewriteRule "^puppy.html" "petitchien.html" [NC]</pre> <p>Pour une liste des drapeaux disponibles, leurs significations, et des exemples, voir le document <a href="flags.html">Drapeaux de -réécriture</a>.</p> +réécriture</a>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="rewritecond" id="rewritecond">Conditions de réécriture</a></h2> +<h2><a name="rewritecond" id="rewritecond">Conditions de réécriture</a></h2> <p>Il est possible d'utiliser une ou plusieurs directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> pour restreindre les types -de requêtes auxquelles devra s'appliquer la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante. Le premier -argument est une variable décrivant une caractéristique de la requête, +de requêtes auxquelles devra s'appliquer la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante. Le premier +argument est une variable décrivant une caractéristique de la requête, le second argument est une <a href="#regex">expression rationnelle</a> -qui doit correspondre à la variable, et un troisième argument optionnel -est une liste de drapeaux qui modifient la manière dont la -correspondance est évaluée.</p> +qui doit correspondre à la variable, et un troisième argument optionnel +est une liste de drapeaux qui modifient la manière dont la +correspondance est évaluée.</p> <p class="figure"> <img src="../images/syntax_rewritecond.png" alt="Syntaxe de la directive RewriteCond" /><br /> @@ -295,36 +295,36 @@ correspondance est évaluée.</p> </p> -<p>Par exemple, pour renvoyer toutes les requêtes en provenance d'une +<p>Par exemple, pour renvoyer toutes les requêtes en provenance d'une certaine tranche d'adresses IP vers un autre serveur, vous pouvez utiliser :</p> <pre class="prettyprint lang-config">RewriteCond "%{REMOTE_ADDR}" "^10\.2\." RewriteRule "(.*)" "http://intranet.example.com$1"</pre> -<p>Si vous spécifiez plus d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, ces directives -doivent toutes être satisfaites pour que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante s'applique. Par exemple, -pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne -de requête, sauf si elles contiennent aussi un cookie contenant le mot +<p>Si vous spécifiez plus d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, ces directives +doivent toutes être satisfaites pour que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante s'applique. Par exemple, +pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne +de requête, sauf si elles contiennent aussi un cookie contenant le mot "go", vous pouvez utiliser :</p> <pre class="prettyprint lang-config">RewriteCond "%{QUERY_STRING}" "hack" RewriteCond "%{HTTP_COOKIE}" "!go" RewriteRule "." "-" [F]</pre> -<p>Notez que le point d'exclamation indique une correspondance négative -; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"</p> +<p>Notez que le point d'exclamation indique une correspondance négative +; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"</p> <p>Les correspondances dans les expressions rationnelles contenues dans les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> -peuvent constituer des parties de la chaîne de <var>Substitution</var> -de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> via +peuvent constituer des parties de la chaîne de <var>Substitution</var> +de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> via les variables <code>%1</code>, <code>%2</code>, etc... Par -exemple, ce qui suit va diriger la requête vers un répertoire différent -en fonction du nom d'hôte utilisé pour accéder au site :</p> +exemple, ce qui suit va diriger la requête vers un répertoire différent +en fonction du nom d'hôte utilisé pour accéder au site :</p> <pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}" "(.*)" RewriteRule "^/(.*)" "/sites/%1/$1"</pre> -<p>Si la requête concernait <code>http://example.com/foo/bar</code>, +<p>Si la requête concernait <code>http://example.com/foo/bar</code>, alors <code>%1</code> contiendrait <code>example.com</code> et <code>$1</code> contiendrait <code>foo/bar</code>.</p> @@ -332,36 +332,36 @@ alors <code>%1</code> contiendrait <code>example.com</code> et </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="rewritemap" id="rewritemap">Tables de réécriture</a></h2> +<h2><a name="rewritemap" id="rewritemap">Tables de réécriture</a></h2> <p>La directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> -permet en quelque sorte de faire appel à une fonction externe pour -effectuer la réécriture à votre place. Tout ceci est décrit plus en -détails dans la <a href="rewritemap.html">Documentation -supplémentaire sur RewriteMap</a>.</p> +permet en quelque sorte de faire appel à une fonction externe pour +effectuer la réécriture à votre place. Tout ceci est décrit plus en +détails dans la <a href="rewritemap.html">Documentation +supplémentaire sur RewriteMap</a>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="htaccess" id="htaccess">Fichiers .htaccess</a></h2> -<p>La réécriture est en général définie au niveau de la configuration du -serveur principal (en dehors de toute section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>) ou dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. Il s'agit là de la -manière la plus simple de mettre en oeuvre la réécriture et nous la +<p>La réécriture est en général définie au niveau de la configuration du +serveur principal (en dehors de toute section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>) ou dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. Il s'agit là de la +manière la plus simple de mettre en oeuvre la réécriture et nous la recommandons. Il est possible, cependant, de mettre en oeuvre la -réécriture au sein d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou d'un fichier <a href="../howto/htaccess.html"><code>.htaccess</code></a> ; ce type de -configuration est cependant plus complexe. Cette technique est appelée -réécriture par répertoire.</p> - -<p>La principale différence avec les réécritures au niveau du serveur réside -dans le fait que le préfixe du chemin du répertoire contenant le fichier -<code>.htaccess</code> est supprimé avant la mise en correspondance dans -la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. De +réécriture au sein d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou d'un fichier <a href="../howto/htaccess.html"><code>.htaccess</code></a> ; ce type de +configuration est cependant plus complexe. Cette technique est appelée +réécriture par répertoire.</p> + +<p>La principale différence avec les réécritures au niveau du serveur réside +dans le fait que le préfixe du chemin du répertoire contenant le fichier +<code>.htaccess</code> est supprimé avant la mise en correspondance dans +la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. De plus, on doit utiliser la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> pour s'assurer que la -requête est correctement mise en correspondance.</p> +requête est correctement mise en correspondance.</p> </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/intro.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/intro.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/intro.html" title="Français"> fr </a></p> </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; @@ -380,7 +380,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/intro.html } })(window, document); //--><!]]></script></div><div id="footer"> -<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); diff --git a/docs/manual/rewrite/tech.html b/docs/manual/rewrite/tech.html index 77deca5ea1..3e2051effd 100644 --- a/docs/manual/rewrite/tech.html +++ b/docs/manual/rewrite/tech.html @@ -6,4 +6,4 @@ Content-type: text/html; charset=ISO-8859-1 URI: tech.html.fr Content-Language: fr -Content-type: text/html; charset=ISO-8859-1 +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/rewrite/tech.html.fr b/docs/manual/rewrite/tech.html.fr index d2e30b0951..ead97dd676 100644 --- a/docs/manual/rewrite/tech.html.fr +++ b/docs/manual/rewrite/tech.html.fr @@ -1,13 +1,13 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> -<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> -<title>Détails techniques sur le module Apache mod_rewrite - Serveur Apache HTTP Version 2.5</title> +<title>Détails techniques sur le module Apache mod_rewrite - Serveur Apache HTTP Version 2.5</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> @@ -21,97 +21,97 @@ <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> -<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Détails techniques sur le module Apache mod_rewrite</h1> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Détails techniques sur le module Apache mod_rewrite</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/tech.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/tech.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/tech.html" title="Français"> fr </a></p> </div> -<p>Ce document passe en revue certains détails techniques à propos du +<p>Ce document passe en revue certains détails techniques à propos du module mod_rewrite et de la mise en correspondance des URLs</p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#InternalAPI">Phases de l'API</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#InternalRuleset">Traitement du jeu de règles</a></li> -</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en -correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> +<li><img alt="" src="../images/down.gif" /> <a href="#InternalRuleset">Traitement du jeu de règles</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en +correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="InternalAPI" id="InternalAPI">Phases de l'API</a></h2> - <p>Le traitement des requêtes par le serveur HTTP Apache se - déroule en plusieurs phases. Au cours de chaque phase, un ou - plusieurs modules peuvent être appelés pour traiter la partie - concernée du cycle de vie de la requête. Les différentes phases + <p>Le traitement des requêtes par le serveur HTTP Apache se + déroule en plusieurs phases. Au cours de chaque phase, un ou + plusieurs modules peuvent être appelés pour traiter la partie + concernée du cycle de vie de la requête. Les différentes phases peuvent consister en traduction d'URL en nom de fichier, 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 - - comme on les nomme souvent) pour la réécriture des URLs.</p> + 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 - fichier qui intervient après la lecture de la requête HTTP, mais + fichier qui intervient après la lecture de la requête HTTP, mais avant le processus d'autorisation. Ensuite, il utilise le hook - Fixup, qui intervient après les phases d'autorisation, après la - lecture des fichiers de configuration de niveau répertoire (fichiers + Fixup, qui intervient après les phases d'autorisation, après la + lecture des fichiers de configuration de niveau répertoire (fichiers <code>.htaccess</code>), mais avant l'appel du gestionnaire de contenu.</p> - <p>Lorsqu'une requête arrive et une fois le serveur - correspondant ou le serveur virtuel déterminé, le moteur de - réécriture commence à traiter toute directive apparaissant dans la + <p>Lorsqu'une requête arrive et une fois le serveur + correspondant ou le serveur virtuel déterminé, le moteur de + réécriture commence à traiter toute directive apparaissant dans la configuration de niveau serveur (autrement dit dans le fichier de configuration principal du serveur et les sections <code class="directive"><a href="../mod/core.html#virtualhost"><Virtualhost></a></code>). - Tout ce processus s'exécute au cours de la phase de traduction URL + Tout ce processus s'exécute au cours de la phase de traduction URL vers nom de fichier.</p> - <p>Quelques étapes plus loin, une fois les répertoires de données - finaux trouvés, les directives de configuration de niveau répertoire - (fichiers <code>.htaccess</code> et sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>) sont appliquées. Ce processus - s'exécute au cours de la phase Fixup.</p> + <p>Quelques étapes plus loin, une fois les répertoires de données + finaux trouvés, les directives de configuration de niveau répertoire + (fichiers <code>.htaccess</code> et sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>) 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, mod_rewrite réécrit le <code>REQUEST_URI</code> soit vers une nouvelle URL, soit vers un nom de fichier.</p> - <p>Dans un contexte de niveau répertoire (autrement dit dans les + <p>Dans un contexte de niveau répertoire (autrement dit dans les fichiers <code>.htaccess</code> et les sections - <code>Directory</code>), les règles de réécriture s'appliquent après + <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 <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est le - chemin complet vers le nom de fichier traduit amputé de la partie - répertoires (y compris le dernier slash).</p> - - <p>Un exemple : si les règles se trouvent dans - /var/www/foo/.htaccess et si une requête pour /foo/bar/baz est - traité, une expression comme ^bar/baz$ correspondra.</p> - - <p>Si une substitution intervient dans un contexte de répertoire, - une nouvelle sous-requête interne est générée avec la nouvelle URL, - ce qui relance le traitement des phases de la requête. Si la - substitution est un chemin relatif, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> détermine le chemin URL - devant préfixer cette substitution. Dans un contexte de répertoire, - il faut s'assurer de créer des règles qui + chemin complet vers le nom de fichier traduit amputé de la partie + répertoires (y compris le dernier slash).</p> + + <p>Un exemple : si les règles se trouvent dans + /var/www/foo/.htaccess et si une requête pour /foo/bar/baz est + traité, une expression comme ^bar/baz$ correspondra.</p> + + <p>Si une substitution intervient dans un contexte de répertoire, + une nouvelle sous-requête interne est générée avec la nouvelle URL, + ce qui relance le traitement des phases de la requête. Si la + substitution est un chemin relatif, la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> détermine le chemin URL + devant préfixer cette substitution. Dans un contexte de répertoire, + il faut s'assurer de créer des règles qui n'effectueront pas de substitution au - cours d'une passe ultérieure du processus de réécriture au niveau - répertoire afin d'éviter les bouclages . Voir <a href="http://wiki.apache.org/httpd/RewriteLooping">Bouclage dans le - processus de réécriture</a> pour une discussion plus détaillée à - propos de ce problème.</p> - - <p>En conséquence de cette manipulation de l'URL , vous devrez - pensez à confectionner différemment vos règles de réécriture dans un - contexte de niveau répertoire. En particulier, rappelez-vous que le - chemin de répertoire sera absent de l'URL que vos règles de - réécriture verront. Voici quelques exemples qui permettront de + cours d'une passe ultérieure du processus de réécriture au niveau + répertoire afin d'éviter les bouclages . Voir <a href="http://wiki.apache.org/httpd/RewriteLooping">Bouclage dans le + processus de réécriture</a> pour une discussion plus détaillée à + propos de ce problème.</p> + + <p>En conséquence de cette manipulation de l'URL , vous devrez + pensez à confectionner différemment vos règles de réécriture dans un + contexte de niveau répertoire. En particulier, rappelez-vous que le + chemin de répertoire sera absent de l'URL que vos règles de + réécriture verront. Voici quelques exemples qui permettront de clarifier les choses :</p> <table class="bordered"> <tr> - <th>Position de la règle</th> - <th>Règle</th> + <th>Position de la règle</th> + <th>Règle</th> </tr> <tr> @@ -120,82 +120,82 @@ correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a </tr> <tr> - <td>Fichier .htaccess à la racine des documents</td> + <td>Fichier .htaccess à la racine des documents</td> <td>RewriteRule "^images/(.+)\.jpg" "images/$1.gif"</td> </tr> <tr> - <td>Fichier .htaccess dans le répertoire images</td> + <td>Fichier .htaccess dans le répertoire images</td> <td>RewriteRule "^(.+)\.jpg" "$1.gif"</td> </tr> </table> - <p>Pour une étude plus approfondie de la manière dont mod_rewrite - 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> + <p>Pour une étude plus approfondie de la manière dont mod_rewrite + 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> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="InternalRuleset" id="InternalRuleset">Traitement du jeu de règles</a></h2> +<h2><a name="InternalRuleset" id="InternalRuleset">Traitement du jeu de règles</a></h2> <p>Maintenant, quand mod_rewrite 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 - parcours des répertoires par le noyau d'Apache pour le contexte de - répertoire). Puis le moteur de réécriture est démarré avec le jeu - de règles contenu (une ou plusieurs règles associées à leurs - conditions). En lui-même, le mode opératoire du moteur de - réécriture d'URLs est exactement le même dans les deux contextes - de configuration. Seul le traitement du résultat final diffère.</p> - - <p>L'ordre dans lequel les règles sont définies est important car - le moteur de réécriture les traite selon une chronologie - particulière (et pas très évidente). Le principe est le suivant : - le moteur de réécriture traite les règles (les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>) les unes - à la suite des autres, et lorsqu'une règle s'applique, il parcourt - les éventuelles conditions (directives - <code>RewriteCond</code>directives) associées. + 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 + parcours des répertoires par le noyau d'Apache pour le contexte de + répertoire). Puis le moteur de réécriture est démarré avec le jeu + de règles contenu (une ou plusieurs règles associées à leurs + conditions). En lui-même, le mode opératoire du moteur de + réécriture d'URLs est exactement le même dans les deux contextes + de configuration. Seul le traitement du résultat final diffère.</p> + + <p>L'ordre dans lequel les règles sont définies est important car + le moteur de réécriture les traite selon une chronologie + particulière (et pas très évidente). Le principe est le suivant : + le moteur de réécriture traite les règles (les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>) les unes + à la suite des autres, et lorsqu'une règle s'applique, il parcourt + les éventuelles conditions (directives + <code>RewriteCond</code>directives) associées. Pour des raisons historiques, les - conditions précèdent les règles, si bien que le déroulement du - contrôle est un peu compliqué. Voir la figure 1 pour plus de - détails.</p> + conditions précèdent les règles, si bien que le déroulement du + contrôle est un peu compliqué. Voir la figure 1 pour plus de + détails.</p> <p class="figure"> <img src="../images/rewrite_process_uri.png" alt="Flux des comparaisons des directives RewriteRule et RewriteCond" /><br /> - <dfn>Figure 1:</dfn>Déroulement du contrôle à travers le jeu de - règles de réécriture + <dfn>Figure 1:</dfn>Déroulement du contrôle à travers le jeu de + règles de réécriture </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 - et passe à la règle suivante. Si l'URL correspond au - <em>Modèle</em>, mod_rewrite recherche la présence de conditions + <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 + et passe à la règle suivante. Si l'URL correspond au + <em>Modèle</em>, mod_rewrite 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 - 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 + avant les règles de réécriture). S'il n'y en a pas, mod_rewrite 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 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 - test <em>TestString</em> est tout d'abord élaborée en développant - des variables, des références arrières, des recherches dans des - tables de correspondances, etc..., puis cette chaîne de test est - comparée au modèle de condition <em>CondPattern</em>. Si le modèle + 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 + test <em>TestString</em> est tout d'abord élaborée en développant + des variables, des références arrières, des recherches dans des + tables de correspondances, etc..., puis cette chaîne de test est + comparée au modèle de condition <em>CondPattern</em>. Si le modèle ne correspond pas, les autres conditions du jeu ne sont pas - examinées et la règle correspondante ne s'applique pas. Si le - modèle correspond, la condition suivante est examinée et ainsi de - suite jusqu'à la dernière condition. Si toutes les conditions sont - satisfaites, le traitement de la règle en cours se poursuit avec - le remplacement de l'URL par la chaîne de <em>Substitution</em>.</p> + examinées et la règle correspondante ne s'applique pas. Si le + modèle correspond, la condition suivante est examinée et ainsi de + suite jusqu'à la dernière condition. Si toutes les conditions sont + satisfaites, le traitement de la règle en cours se poursuit avec + le remplacement de l'URL par la chaîne de <em>Substitution</em>.</p> </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/rewrite/tech.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../fr/rewrite/tech.html" title="Français"> fr </a></p> +<a href="../fr/rewrite/tech.html" title="Français"> fr </a></p> </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; @@ -214,7 +214,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/tech.html' } })(window, document); //--><!]]></script></div><div id="footer"> -<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); |