You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2011/04/08 16:26:32 UTC
svn commit: r1090263 - in /httpd/httpd/branches/2.2.x/docs/manual:
mod/mod_rewrite.html.en mod/mod_rewrite.html.fr mod/mod_rewrite.xml
rewrite/remapping.html.en rewrite/remapping.xml
Author: rbowen
Date: Fri Apr 8 14:26:32 2011
New Revision: 1090263
URL: http://svn.apache.org/viewvc?rev=1090263&view=rev
Log:
Remove more unnecessary regex anchors from rewrite examples.
Modified:
httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.en
httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.fr
httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.xml
httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.html.en
httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.xml
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.en?rev=1090263&r1=1090262&r2=1090263&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.en (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.en Fri Apr 8 14:26:32 2011
@@ -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 an
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]
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.fr?rev=1090263&r1=1090262&r2=1090263&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.fr (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.html.fr Fri Apr 8 14:26:32 2011
@@ -140,10 +140,7 @@ SCRIPT_URI=http://en1.engelschall.com/u/
<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><!--#echo
- var="VAR"--></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
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.xml?rev=1090263&r1=1090262&r2=1090263&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.xml (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_rewrite.xml Fri Apr 8 14:26:32 2011
@@ -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 an
<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]
Modified: httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.html.en?rev=1090263&r1=1090262&r2=1090263&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.html.en (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.html.en Fri Apr 8 14:26:32 2011
@@ -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>]
Modified: httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.xml?rev=1090263&r1=1090262&r2=1090263&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.xml (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/rewrite/remapping.xml Fri Apr 8 14:26:32 2011
@@ -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>]