]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Remove more unnecessary regex anchors from rewrite examples.
authorRich Bowen <rbowen@apache.org>
Fri, 8 Apr 2011 14:26:32 +0000 (14:26 +0000)
committerRich Bowen <rbowen@apache.org>
Fri, 8 Apr 2011 14:26:32 +0000 (14:26 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1090263 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_rewrite.html.en
docs/manual/mod/mod_rewrite.html.fr
docs/manual/mod/mod_rewrite.xml
docs/manual/rewrite/remapping.html.en
docs/manual/rewrite/remapping.xml

index 341fe899dafd6b8d56366b3afc6ecf2b4687fe9c..badce44196227ca6981b459e607693f07fd2ae07 100644 (file)
@@ -620,9 +620,9 @@ Result:
           instead of the implicit AND. Typical example: 
 
 <div class="example"><pre>
-RewriteCond %{REMOTE_HOST}  ^host1.*  [OR]
-RewriteCond %{REMOTE_HOST}  ^host2.*  [OR]
-RewriteCond %{REMOTE_HOST}  ^host3.*
+RewriteCond %{REMOTE_HOST}  =host1  [OR]
+RewriteCond %{REMOTE_HOST}  =host2  [OR]
+RewriteCond %{REMOTE_HOST}  =host3
 RewriteRule ...some special stuff for any of these hosts...
 </pre></div>
 
@@ -650,10 +650,10 @@ RewriteRule ...some special stuff for any of these hosts...
         use the following: </p>
 
 <div class="example"><pre>
-RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
+RewriteCond  %{HTTP_USER_AGENT}  Mozilla
 RewriteRule  ^/$                 /homepage.max.html  [L]
 
-RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
+RewriteCond  %{HTTP_USER_AGENT}  Lynx
 RewriteRule  ^/$                 /homepage.min.html  [L]
 
 RewriteRule  ^/$                 /homepage.std.html  [L]
index 71e325d11609e6c4b9cce5df485826bbf70f4b7e..4d78f234163157100f825d3326f61c689b6aede1 100644 (file)
@@ -140,10 +140,7 @@ SCRIPT_URI=http://en1.engelschall.com/u/rse/
 <h2><a name="Solutions" id="Solutions">Solutions pratiques</a></h2>
 
     <p>Vous trouverez de nombreux exemples d'utilisation courante (et
-    moins courante) de mod_rewrite dans le
-    <a href="../rewrite/rewrite_guide.html">Guide de réécriture</a>,
-    et dans le
-    <a href="../rewrite/rewrite_guide_advanced.html">Guide de réécriture avancée</a>.</p>
+    moins courante) de mod_rewrite dans la <a href="../rewrite/">documentation spécifique à la réécriture.</a></p>    
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1416,337 +1413,125 @@ substitution !
       drapeau <code>[QSA]</code>.</p>
      </div>
 
-
       <p>En outre, vous pouvez spécifier des <a name="rewriteflags" id="rewriteflags">actions</a> spéciales à effectuer en ajoutant
       des
       <strong><code>[</code><em>drapeaux</em><code>]</code></strong>
       comme troisième argument de la directive
-      <code>RewriteRule</code>. Séparés par des virgules au sein d'une
-      liste encadrée par des crochets, les <em>drapeaux</em> peuvent
-      être choisis parmi les suivants : </p>
-
-      <dl>
-        <dt>'<code>B</code>' (références arrière échappées)</dt>
-        <dd><p>Les URLs doivent être non échappées pour pouvoir être
-       comparées par Apache, si bien que les références arrières
-       renverront une valeur non échappée au moment où elles seront
-       appliquées. En utilisant le drapeau B, les caractères non
-       alphanumériques des références arrières seront echappés. Par
-       exemple, considérons la règle :</p>
-        <pre><code> RewriteRule ^(.*)$ index.php?show=$1 </code></pre>
-        <p>Elle va faire correspondre <code>/C++</code> à
-       <code>index.php?show=/C++</code>. Mais elle va aussi faire
-       correspondre <code>/C%2b%2b</code> à
-       <code>index.php?show=/C++</code>, car le caractère
-       <code>%2b</code> n'a pas été échappé. Par contre, avec le
-       drapeau B, la substitution s'effectuera vers
-       <code>index.php?show=/C%2b%2b</code>.</p>
-        <p>Ce processus d'échappement est particulièrement nécessaire
-       dans le contexte du mandataire, où l'adresse d'arrière-plan ne
-       fonctionnera pas si elle se présente sous une forme
-       non échappée.</p>
-        </dd>
-
-        <dt>'<code>chain|C</code>'
-        (chaînage avec la règle suivante)</dt><dd>
-         Ce drapeau effectue un chaînage entre la règle courante et la
-        suivante (qui peut elle-même être chaînée avec la suivante, et
-        ainsi de suite). Ceci provoque l'effet suivant : si une règle
-        correspond, le processus continue normalement - le drapeau n'a
-        aucun effet. Si la règle ne correspond <strong>pas</strong>,
-        toutes les règles chaînées suivantes sont ignorées. Par
-        exemple, ce drapeau peut être utilisé pour supprimer la
-        partie ``<code>.www</code>'', dans un jeu de règles au niveau
-        du répertoire, lorsque vous faites intervenir une redirection
-        externe (où la partie ``<code>.www</code>'' ne doit pas
-        figurer !).</dd>
-
-        <dt>'<code>cookie|CO=</code><em>NAME</em>:<em>VAL</em>:<em>domain</em>[:<em>lifetime</em>[:<em>path</em>[:<em>secure</em>[:<em>httponly</em>]]]]'
-        (définit un cookie)</dt><dd>
-        Ce drapeau définit un cookie au niveau du navigateur du client.
-       Le nom du cookie est spécifié par <em>NOM</em>, et sa valeur
-       par <em>VAL</em>. Le champ <em>domaine</em> est le domaine du
-       cookie, comme '.apache.org', le champ optionnel
-       <em>durée de vie</em> est la durée de vie du cookie en minutes,
-       et le champ optionnel <em>path</em> le chemin du cookie. Si
-       <em>secure</em> est défini à 'secure', 'true' ou '1', le cookie
-       ne sera transmis que via une connexion sécurisée. Si
-       <em>httponly</em> est défini à 'HttpOnly', 'true' ou '1', le
-       drapeau <code>HttpOnly</code> sera utilisé, rendant le cookie
-       inaccessible au code javascript pour les navigateurs qui
-       supportent cette fonctionnalité.</dd>
-
-       <dt>'<code>discardpathinfo|DPI'
-        (ignore PATH_INFO)</code></dt><dd>
-        <p>Dans un contexte de répertoire, l'URI avec lequel chaque
-       règle <code class="directive">RewriteRule</code> effectue sa comparaison
-       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é envoyé
-       par le client, le résultat d'un traitement précédent de
-       l'ensemble de règles de mod_rewrite, ou le résultat de la règle
-       précédente du traitement courant de mod_rewrite.</p>
-
-        <p>Paradoxalement, les information PATH_INFO ajoutées à l'URI
-       avant chaque règle ne représentent que la valeur qu'avait
-       PATH_INFO avant ce cycle de traitement des règles de
-       mod_rewrite. En conséquence, si de grandes parties de l'URI ont
-       été concernées par les règles et ont été copiées vers des
-       chaînes de substitution au cours du traitement de plusieurs
-       règles <code class="directive">RewriteRule</code>, sans considérer
-       quelles parties de l'URI provenaient des informations de
-       PATH_INFO courantes, l'URI final pourra se voir ajouter
-       plusieurs copies de PATH_INFO.</p>
-
-        <p>Utilisez ce drapeau avec toute substitution où les
-       informations de PATH_INFO résultant de la mise en correspondance
-       précédente de cette requête avec le système de fichiers ne
-       présente pas d'intérêt. Ce drapeau permet d'ignorer les
-       informations de PATH_INFO élaborées avant le cycle de traitement
-       courant de mod_rewrite. PATH_INFO ne sera pas recalculé avant
-       que le cycle de traitement courant de mod_rewrite ne se termine.
-       Les règles suivantes de ce cycle de traitement ne verront que le
-       résultat direct des substitutions, sans aucune information
-       PATH_INFO ajoutée..</p></dd>
-
-        <dt>'<code>env|E=!</code><em>VAR</em>[:<em>VAL</em>]'
-        (définit une variable d'environnement)</dt><dd>
-        Ce drapeau force la définition d'une variable d'environnement nommée
-       <em>VAR</em>. La valeur, si elle est fournie,  sera <em>VAL</em>, où
-       <em>VAL</em> peut contenir des références arrières vers des
-       expressions rationnelles (<code>$N</code> et <code>%N</code>)
-       qui seront évaluées. La forme !<em>VAR</em> annule
-       la définition de la variable d'environnement <em>VAR</em> qui, de
-       ce fait, peut plus recevoir aucune valeur <em>VAL</em>.
-       Vous pouvez utiliser ce drapeau plusieurs
-       fois pour définir plusieurs variables. Les variables peuvent
-       ensuite être déréférencées dans de nombreux cas, et le plus
-       souvent depuis XSSI (via <code>&lt;!--#echo
-        var="VAR"--&gt;</code>) ou CGI (<code>$ENV{'VAR'}</code>).
-       Vous pouvez déréférencer la variable dans un modèle de
-       directive RewriteCond ultérieure, en utilisant
-       <code>%{ENV:VAR}</code>. Ce drapeau permet de supprimer
-       des informations d'une URL, tout en conservant la trace de
-       ces informations.</dd>
-
-        <dt>'<code>forbidden|F</code>' (force l'interdiction d'une
-       URL)</dt><dd>
-        Ce drapeau force l'interdiction de l'URL courante - il renvoie
-       immédiatement une réponse HTTP 403 (FORBIDDEN). Ce drapeau,
-       associé à des directives RewriteCond appropriées, permet de
-       bloquer de manière conditionnelle certaines URLs.</dd>
-
-        <dt>'<code>gone|G</code>' (signale la non-existence d'une
-       URL)</dt><dd>
-        Ce drapeau signale la non-existence d'une URL - il renvoie
-       immédiatement une réponse HTTP 410 (GONE). Il permet de marquer
-       les pages qui n'existent plus comme "gone".</dd>
-
-        <dt>
-        '<code>handler|H</code>=<em>Gestionnaire de contenu</em>'
-        (impose un gestionnaire de contenu)</dt><dd>
-         Impose <em>Gestionnaire de contenu</em> comme gestionnaire de
-        contenu pour le fichier cible. Ce drapeau permet par exemple
-        de simuler la directive
-        <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> du
-        module <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>, qui impose en interne le
-        gestionnaire ``<code>cgi-script</code>'' à tous les fichiers
-        du répertoire correspondant.</dd>
-
-        <dt>'<code>last|L</code>'
-        (dernière règle)</dt><dd>
-       Termine le processus de réécriture ici et n'applique plus
-       aucune règle de réécriture. Ce drapeau est équivalent à la
-       commande Perl <code>last</code> ou la commande C
-       <code>break</code>. Il permet d'éviter la réécriture par les
-       règles suivantes d'une URL déjà réécrite. Rappelez-vous
-       cependant que si une directive
-       <code class="directive">RewriteRule</code> génère une redirection
-       interne (ce qui arrive fréquemment lors d'une réécriture dans
-       un contexte de répertoire), la requête sera réinjectée et le
-       processus de réécriture sera réitéré à partir de la
-       première directive <code class="directive">RewriteRule</code>.</dd>
-
-        <dt>'<code>next|N</code>'
-        (prochain round)</dt><dd>
-        Relance le processus de réécriture (toujours à partir de la
-       première règle). Cette fois, l'URL à comparer n'est plus l'URL
-       originale, mais plutôt l'URL renvoyée par la dernière règle de
-       réécriture. Ce drapeau est équivalent à la commande Perl
-       <code>next</code> ou la commande C <code>continue</code>. Il
-       permet de redémarrer le processus de réécriture - en se
-       positionnant immédiatement au niveau de la première règle.
-       <strong>Prenez garde à ne pas créer de bouclage
-       infini !</strong></dd>
-
-        <dt>'<code>nocase|NC</code>'
-        (insensible à la casse)</dt><dd>
-        Ce drapeau rend le <em>Modèle</em> insensible à la casse,
-       c'est à dire ne tenant pas compte des majuscules/minuscules
-       lorsque le <em>Modèle</em> est comparé avec l'URL
-       courante.</dd>
-
-        <dt>
-          '<code>noescape|NE</code>'
-          (pas d'échappement de l'URI en sortie)</dt><dd>
-          Ce drapeau empêche mod_rewrite d'appliquer les règles
-         d'échappement d'URI usuelles au résultat d'une réécriture.
-         Normalement, les caractère spéciaux (comme '%', '$', ';',
-         etc...) sont échappés en leurs équivalents hexadécimaux
-         (respectivement '%25', '%24', et '%3B') ; ce drapeau empêche
-         cela de se produire. Il permet au symbole '%' d'apparaître
-         en sortie, comme dans
-<div class="example"><p><code>
-    RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
-</code></p></div>
-          qui remplacerait '<code>/foo/zed</code>' par la requête plus
-         sure '<code>/bar?arg=P1=zed</code>'.
-        </dd>
-
-        <dt>
-          '<code>nosubreq|NS</code>'
-          (sous-requêtes non concernées)</dt><dd>
-          <p>Si ce drapeau est présent, le moteur de réécriture
-         n'applique pas la règle si la requête courante est une
-         sous-requête interne. Par exemples, des sous-requêtes sont
-         générées en interne par Apache lorsque
-         <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> essaie de trouver des
-         informations à propos d'éventuels fichiers de répertoire par
-         défaut (fichiers <code>index.xxx</code>). Dans le cas d'une
-         sous-requête, ce n'est pas toujours utile, et peut même
-         provoquer des erreurs si l'ensemble du jeu de règles est
-         appliqué. Ce drapeau permet d'exclure certaines règles.</p>
-          <p>Pour déterminer si l'on doit appliquer une règle ou pas,
-         si une URL est préfixée par un script CGI, pour forcer son
-         traitement par le script CGI, vous allez probablement
-         rencontrer des problèmes (ou tout du moins une surcharge
-         significative) avec les sous-requêtes. Dans ce cas,
-         utilisez ce drapeau</p>
-        </dd>
-
-        <dt>
-          '<code>proxy|P</code>' (impose le mandataire)</dt><dd>
-          Ce drapeau force l'envoi de la partie substitution en
-         interne en tant que requête mandataire, et (le processus de
-         réécriture s'arrête ici) son envoi immédiat vers le <a href="mod_proxy.html">module proxy</a>. Vous devez vous
-         assurer que la chaîne de substitution est un URI valide
-         (débutant typiquement par
-         <code>http://</code><em>nom d'hôte</em>) pouvant être traitée
-         par le module proxy d'Apache. Si ce n'est pas le cas, le
-         module proxy vous renverra une erreur. Utilisez ce drapeau
-         pour implémenter de manière plus puissante la directive <a href="mod_proxy.html#proxypass">ProxyPass</a>, pour mettre
-         en correspondance un contenu distant dans l'espace de
-         nommage du serveur local.
-
-          <p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être activé pour
-         pouvoir utiliser ce drapeau..</p>
-        </dd>
-
-        <dt>
-          '<code>passthrough|PT</code>'
-          (passage au gestionnaire suivant)</dt><dd>
-           Ce drapeau force le moteur de réécriture à affecter
-          la valeur du champ <code>filename</code> au
-          champ <code>uri</code> de la structure interne
-          <code>request_rec</code>. Ce drapeau n'est qu'une astuce
-          permettant un traitement supplémentaire de la sortie des
-          directives <code>RewriteRule</code>, en utilisant
-          <code>Alias</code>, <code>ScriptAlias</code>,
-          <code>Redirect</code>, ou d'autres directives en provenance
-          de divers traducteurs URI/nom de fichier. Par exemple, pour
-          réécrire <code>/abc</code> vers <code>/def</code> avec
-          <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, puis <code>/def</code> vers
-          <code>/ghi</code> avec <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> :
-<div class="example"><p><code>
-    RewriteRule ^/abc(.*)  /def$1 [PT]<br />
-    Alias       /def       /ghi
-</code></p></div>
-          Si le drapeau <code>PT</code> est omis,
-         <code>mod_rewrite</code> va réécrire
-         <code>uri=/abc/...</code> vers <code>filename=/def/...</code>
-         comme tout traducteur URI/nom de fichier compatible avec
-         l'API doit le faire. Puis, <code>mod_alias</code> va tenter
-         une transition URI vers nom de fichier, et va échouer.
-
-          <p>Note: <strong>Vous devez utiliser ce drapeau si vous
-         voulez mélanger des directives en provenance de différents
-         modules qui effectuent une traduction
-         URL/nom de fichier</strong>. Un exemple typique est
-         l'utilisation conjointe de <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et de
-         <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-          <p>Le drapeau <code>PT</code> rend implicite la présence du
-         drapeau <code>L</code> flag : la réécriture sera stoppée afin
-         de transmettre la requête à la phase suivante du
-         traitement.</p>
-        </dd>
-
-        <dt>'<code>qsappend|QSA</code>'
-        (ajout d'une chaîne de requête)</dt><dd>
-        Ce drapeau force le moteur de réécriture à ajouter la chaîne
-       de substitution à la chaîne de requête au lieu de remplacer
-       cette dernière par la chaîne de substitution.
-       Vous pouvez ainsi ajouter des données à la chaîne de requête
-       via une règle de réécriture.</dd>
-
-        <dt>'<code>redirect|R</code>
-          [=<em>code</em>]' (force une <a id="redirect" name="redirect">redirection</a>)</dt><dd>
-        <p>Préfixe la <em>chaîne de substitution</em> par
-       <code>http://hôte[:port]/</code> (ce qui fait de la nouvelle
-       URL un URI) pour forcer une redirection externe. Si aucun
-       <em>code</em> n'est défini, une réponse HTTP 302 (MOVED
-          TEMPORARILY) sera renvoyée. Si vous voulez renvoyer un autre
-         code de réponse, spécifiez simplement le nombre approprié ou
-         utilisez un des noms symboliques suivants : <code>temp</code>
-         (défaut), <code>permanent</code> ou <code>seeother</code>.
-         Vous pouvez utiliser ce drapeau pour que les règles mettent
-         l'URL sous forme canonique et la renvoient au client, pour
-         traduire ``<code>/~</code>'' en ``<code>/u/</code>'', ou pour
-         ajouter systématiquement un slash à
-         <code>/u/</code><em>utilisateur</em>, etc...<br />
-          <strong>Note:</strong> Si vous utilisez ce drapeau,
-         assurez-vous que le champ de substitution est une URL
-         valide ! Si ce n'est pas le cas, vous serez redirigé vers
-         une URL invalide. Souvenez-vous que, s'il est seul, ce
-         drapeau va seulement préfixer l'URL par
-         <code>http://hôte[:port]/</code>, et que le processus de
-         réécriture va se poursuivre. En général, vous voudrez plutôt
-         stopper la réécriture à ce point, et rediriger immédiatement.
-         Pour stopper la réécriture, vous pouvez ajouter le drapeau
-         'L'.</p>
-          <p>Bien qu'on utilise en général ce drapeau pour les
-         redirections, on peut spécifier tout code de statut valide.
-         Si le code de statut est en dehors de la gamme des codes de
-         redirection (300-399), la chaîne de <em>Substitution</em> est
-         supprimée et le processus de réécriture stoppé comme si le
-         drapeau <code>L</code> était présent.</p>
-        </dd>
-
-        <dt>'<code>skip|S</code>=<em>num</em>'
-        (saute la/les règle(s) suivantes)</dt><dd>
-        Ce drapeau force le moteur de réécriture à sauter les
-       <em>num</em> règles consécutives suivantes, si la règle courante
-       s'applique. Il permet de simuler une structure if-then-else : la
-       dernière règle du bloc "then" devient <code>skip=N</code>, où N
-       est le nombre de règles contenues dans le bloc "else" (ce qui est
-       un comportement différent de celui du drapeau 'chain|C' !).</dd>
-
-        <dt>
-        '<code>type|T</code>=<em>type MIME</em>'
-        (force le type MIME)</dt><dd>
-         Force le <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> du fichier cible à
-        <em>type MIME</em>. Ceci permet de définir le type de contenu
-        en fonction de certaines conditions. Par exemple, l'extrait
-        suivant permet aux fichiers <code>.php</code> d'être
-        <em>affichés</em> par <code>mod_php</code> s'ils sont appelés
-        avec l'extension <code>.phps</code> :
-        <div class="example"><p><code>
-            RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]
-        </code></p></div>
-        </dd>
-      </dl>
-
+      <code>RewriteRule</code>. <em>Flags</em> est une liste de valeurs
+      déparées par des virgules, délimitée par des crochets, choisies
+      parmi les drapeaux de la table suivante. Vous trouverez plus de
+      détails et d'exemples, pour chaque drapeau, dans la <a href="../rewrite/flags.html">documentation sur les drapeaux de
+      réécriture</a>.</p>
+
+<table class="bordered">
+    <tr><th>Flag and syntax</th>
+        <th>Function</th>
+    </tr>
+    <tr>
+        <td>B</td>
+        <td>Escape non-alphanumeric characters <em>before</em> applying
+        the transformation. <em><a href="../rewrite/flags.html#flag_b">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>chain|C</td>
+        <td>Rule is chained to the following rule. If the rule fails,
+        the rule(s) chained to it will be skipped. <em><a href="../rewrite/flags.html#flag_c">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>cookie|CO=<em>NAME</em>:<em>VAL</em></td>
+        <td>Sets a cookie in the client browser. Full syntax is: 
+        CO=<em>NAME</em>:<em>VAL</em>[:<em>domain</em>[:<em>lifetime</em>[:<em>path</em>[:<em>secure</em>[:<em>httponly</em>]]]]] <em><a href="../rewrite/flags.html#flag_co">details ...</a></em>
+        </td>
+    </tr>
+    <tr>
+        <td>discardpath|DPI</td>
+        <td>Causes the PATH_INFO portion of the rewritten URI to be
+        discarded. <em><a href="../rewrite/flags.html#flag_dpi">details 
+        ...</a></em></td>
+    </tr>
+    <tr>
+        <td>env|E=[!]<em>VAR</em>[:<em>VAL</em>]</td>
+        <td>Causes an environment variable <em>VAR</em> to be set (to the
+        value <em>VAL</em> if provided). The form !<em>VAR</em> causes
+        the environment variable <em>VAR</em> to be unset.<em><a href="../rewrite/flags.html#flag_e">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>forbidden|F</td>
+        <td>Returns a 403 FORBIDDEN response to the client browser.
+        <em><a href="../rewrite/flags.html#flag_f">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>gone|G</td>
+        <td>Returns a 410 GONE response to the client browser. <em><a href="../rewrite/flags.html#flag_g">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>Handler|H=<em>Content-handler</em></td>
+        <td>Causes the resulting URI to be sent to the specified
+        <em>Content-handler</em> for processing. <em><a href="../rewrite/flags.html#flag_h">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>last|L</td>
+        <td>Stop the rewriting process immediately and don't apply any
+        more rules. Especially note caveats for per-directory and
+        .htaccess context (see also the END flag). <em><a href="../rewrite/flags.html#flag_l">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>next|N</td>
+        <td>Re-run the rewriting process, starting again with the first
+        rule, using the result of the ruleset so far as a starting
+        point. <em><a href="../rewrite/flags.html#flag_n">details
+        ...</a></em></td>
+    </tr>
+    <tr>
+        <td>nocase|NC</td>
+        <td>Makes the pattern pattern comparison case-insensitive.
+        <em><a href="../rewrite/flags.html#flag_nc">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>noescape|NE</td>
+        <td>Prevent mod_rewrite from applying hexcode escaping of
+        special characters in the result of the rewrite. <em><a href="../rewrite/flags.html#flag_ne">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>nosubreq|NS</td>
+        <td>Causes a rule to be skipped if the current request is an
+        internal sub-request. <em><a href="../rewrite/flags.html#flag_ns">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>proxy|P</td>
+        <td>Force the substitution URL to be internally sent as a proxy
+        request. <em><a href="../rewrite/flags.html#flag_p">details
+        ...</a></em></td>
+    </tr>
+    <tr>
+        <td>passthrough|PT</td>
+        <td>Forces the resulting URI to be passed back to the URL
+        mapping engine for processing of other URI-to-filename
+        translators, such as <code>Alias</code> or
+        <code>Redirect</code>. <em><a href="../rewrite/flags.html#flag_pt">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>qsappend|QSA</td>
+        <td>Appends any query string created in the rewrite target to
+        any query string that was in the original request URL. <em><a href="../rewrite/flags.html#flag_qsa">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>redirect|R[=<em>code</em>]</td>
+        <td>Forces an external redirect, optionally with the specified
+        HTTP status code. <em><a href="../rewrite/flags.html#flag_r">details ...</a></em>
+        </td>
+    </tr>
+    <tr>
+        <td>skip|S=<em>num</em></td>
+        <td>Tells the rewriting engine to skip the next <em>num</em>
+        rules if the current rule matches. <em><a href="../rewrite/flags.html#flag_s">details ...</a></em></td>
+    </tr>
+    <tr>
+        <td>type|T=<em>MIME-type</em></td>
+        <td>Force the <a class="glossarylink" href="../glossary.html#mime-type" title="voir glossaire">MIME-type</a> of the target file
+        to be the specified type. <em><a href="../rewrite/flags.html#flag_t">details ...</a></em></td>
+    </tr>
+    </table>
 
 <div class="note"><h3>Développement du répertoire home</h3>
 <p> Quand la chaîne de substitution commence par quelque chose comme
index 50cedaecb01fc0b66f91cdaf38cff90e7789a22f..e29aad930ce33a2f4c0e8600c9b8ee26a5171408 100644 (file)
@@ -1050,9 +1050,9 @@ Result:
 
 <example>
 <pre>
-RewriteCond %{REMOTE_HOST}  ^host1.*  [OR]
-RewriteCond %{REMOTE_HOST}  ^host2.*  [OR]
-RewriteCond %{REMOTE_HOST}  ^host3.*
+RewriteCond %{REMOTE_HOST}  =host1  [OR]
+RewriteCond %{REMOTE_HOST}  =host2  [OR]
+RewriteCond %{REMOTE_HOST}  =host3
 RewriteRule ...some special stuff for any of these hosts...
 </pre>
 </example>
@@ -1082,10 +1082,10 @@ RewriteRule ...some special stuff for any of these hosts...
 
 <example>
 <pre>
-RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
+RewriteCond  %{HTTP_USER_AGENT}  Mozilla
 RewriteRule  ^/$                 /homepage.max.html  [L]
 
-RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
+RewriteCond  %{HTTP_USER_AGENT}  Lynx
 RewriteRule  ^/$                 /homepage.min.html  [L]
 
 RewriteRule  ^/$                 /homepage.std.html  [L]
index 9708e5da289aa39ae71ed0a427c07e70b5bffe33..1bae21c312dd49074cef72c7c55e729ce228dc43 100644 (file)
@@ -445,6 +445,8 @@ com       http://www.example.com/<br />
       user-agent, which is requesting the content.</p>
     </dd>
 
+    
+
     <dt>Solution:</dt>
 
     <dd>
@@ -459,11 +461,11 @@ com       http://www.example.com/<br />
       This is done with the following ruleset:</p>
 
 <div class="example"><p><code>
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/3</strong>.*<br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Mozilla/3</strong>.*<br />
 RewriteRule ^foo\.html$         foo.<strong>NS</strong>.html          [<strong>L</strong>]<br />
 <br />
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Lynx/</strong>         [OR]<br />
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/[12]</strong><br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Lynx/</strong>         [OR]<br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Mozilla/[12]</strong><br />
 RewriteRule ^foo\.html$         foo.<strong>20</strong>.html          [<strong>L</strong>]<br />
 <br />
 RewriteRule ^foo\.html$         foo.<strong>32</strong>.html          [<strong>L</strong>]
index 458106587ab0634c8dc272b354c7165cceee4d11..ddf289199bf10519d6f8b641ecaaeb666f28d6bf 100644 (file)
@@ -448,6 +448,8 @@ com       http://www.example.com/<br />
       user-agent, which is requesting the content.</p>
     </dd>
 
+    <!-- It would be nice to bring this example into the 21st century.  -->
+
     <dt>Solution:</dt>
 
     <dd>
@@ -462,11 +464,11 @@ com       http://www.example.com/<br />
       This is done with the following ruleset:</p>
 
 <example>
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/3</strong>.*<br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Mozilla/3</strong>.*<br />
 RewriteRule ^foo\.html$         foo.<strong>NS</strong>.html          [<strong>L</strong>]<br />
 <br />
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Lynx/</strong>         [OR]<br />
-RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/[12]</strong><br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Lynx/</strong>         [OR]<br />
+RewriteCond %{HTTP_USER_AGENT}  <strong>Mozilla/[12]</strong><br />
 RewriteRule ^foo\.html$         foo.<strong>20</strong>.html          [<strong>L</strong>]<br />
 <br />
 RewriteRule ^foo\.html$         foo.<strong>32</strong>.html          [<strong>L</strong>]