Commit d2c9514c authored by Richard Bowen's avatar Richard Bowen
Browse files

Remove more unnecessary regex anchors from rewrite examples.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1090263 13f79535-47bb-0310-9956-ffa450edef68
parent cb5ed9b2
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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]
+116 −331
Original line number Diff line number Diff line
@@ -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
+5 −5
Original line number Diff line number Diff line
@@ -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]
+5 −3

File changed.

Preview size limit exceeded, changes collapsed.

+5 −3

File changed.

Preview size limit exceeded, changes collapsed.