X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=docs%2Fmanual%2Fmod%2Fmod_rewrite.xml.fr;h=d0420f85de2d56bba6e343e7327a84c547b7d03b;hb=837aaea30f4ef8f1cf3ad1d3460acfa421d4ab7c;hp=ad6dae0f58666cae558e2df1546413b47dcd303c;hpb=8ee73a5b63989e8e4e995daf3f14e93c6f78c953;p=apache diff --git a/docs/manual/mod/mod_rewrite.xml.fr b/docs/manual/mod/mod_rewrite.xml.fr index ad6dae0f58..d0420f85de 100644 --- a/docs/manual/mod/mod_rewrite.xml.fr +++ b/docs/manual/mod/mod_rewrite.xml.fr @@ -1,7 +1,7 @@ - + @@ -37,7 +37,7 @@ règles permettant de réécrire les URLs des requêtes

Le module mod_rewrite utilise un moteur de réécriture à base de règles, basé sur un interpréteur - d'expressions rationnelles, pour réécrire les URLs à la volée. Par + d'expressions rationnelles PCRE, pour réécrire les URLs à la volée. Par défaut, mod_rewrite met en correspondance une URL avec le système de fichiers. Cependant, on peut aussi l'utiliser pour rediriger une URL vers une autre URL, ou pour invoquer une @@ -80,7 +80,9 @@ règles permettant de réécrire les URLs des requêtes Exemple + LogLevel alert rewrite:trace3 + RewriteLog @@ -120,9 +122,10 @@ moteur de réécriture mettra pas à jour les variables d'environnement SCRIPT_URx.

-

Pour désactiver le module, il vaut mieux utiliser cette - directive que commenter toutes les directives RewriteRule !

+

Plutôt que de commenter toutes les directives RewriteRule, il est préférable + d'utiliser cette directive si l'on souhaite désactiver les + règles de réécriture dans un contexte particulier.

Notez que les hôtes virtuels n'héritent pas des configurations de réécriture. Ceci implique que vous devez @@ -148,8 +151,6 @@ pour le moteur de réécriture server configvirtual host directory.htaccess FileInfo -MaxRedirects n'est plus disponible depuis -la version version 2.1

La directive RewriteOptions définit @@ -188,8 +189,123 @@ la version version 2.1

Même effet que l'option Inherit ci-dessus, mais les règles spécifiées dans le niveau parent s'appliquent avant les règles spécifiées dans le niveau - enfant. Disponible depuis la version 2.3.10 du serveur HTTP - Apache.

+ enfant.
+ Disponible depuis la version 2.3.10 du serveur HTTP Apache.

+ + +
InheritDown
+
+ +

Si cette option est activée, toutes les configurations enfants + hériteront de la configuration courante. Il en est de même si l'on + spécifie RewriteOptions Inherit dans toutes les + configurations enfants. Voir l'option Inherit pour + plus de détails à propos de la manière dont les relations + parent-enfants sont traitées.
+ Cette option est disponible à partir + de la version 2.4.8 du serveur HTTP Apache.

+
+ +
InheritDownBefore
+
+ +

L'effet de cette option est équivalent à celui de l'option + InheritDown ci-dessus, mais les règles de la + configuration parente s'appliquent avant toute + règle de la configuration enfant.
+ Cette option est disponible à partir + de la version 2.4.8 du serveur HTTP Apache.

+
+ +
IgnoreInherit
+
+ +

Si cette option est activée, les configurations courante et + enfants ignoreront toute règle héritée d'une configuration parente + via les options InheritDown ou + InheritDownBefore.
+ Cette option est disponible à partir + de la version 2.4.8 du serveur HTTP Apache.

+
+ +
AllowNoSlash
+
+

Par défaut, mod_rewrite ignore les URLs qui + correspondent à un répertoire sur disque, mais ne comportent pas + de slash final, afin que le module mod_dir + redirige le client vers l'URL canonique avec un slash final.

+ +

Lorsque la directive DirectorySlash est définie à off, il + est possible de spécifier l'option AllowNoSlash pour + s'assurer que les règles de réécriture ne soient plus ignorées. + Si on le souhaite, cette option permet de faire s'appliquer des + règles de réécriture qui correspondent à un répertoire sans slash + final au sein de fichiers .htaccess.
+ Elle est disponible à + partir de la version 2.4.0 du serveur HTTP Apache.

+
+ +
AllowAnyURI
+
+ +

A partir de la version 2.2.22 de httpd, lorsqu'une directive RewriteRule se situe dans un + contexte de serveur virtuel ou de serveur principal, + mod_rewrite ne traitera les règles de réécriture + que si l'URI de la requête respecte la syntaxe d'un chemin URL. Ceci permet + d'éviter certains problèmes de sécurité où des règles + particulières pourraient permettre des développements de modèles + inattendus (voir CVE-2011-3368 + et CVE-2011-4317). + Pour s'affranchir de la restriction relative à la syntaxe des chemins URL, on peut + utiliser l'option AllowAnyURI, afin de permettre à + mod_rewrite d'appliquer le jeu de règles à toute + chaîne de requête URI, sans vérifier si cette dernière respecte la + grammaire des chemins URL définie dans la spécification HTTP.
+ Disponible depuis la version 2.4.3 du serveur HTTP Apache.

+ + + Avertissement à propos de la sécurité + +

L'utilisation de cette option rendra le serveur vulnérable à + certains problèmes de sécurité si les règles de réécritures + concernées n'ont pas été rédigées avec soin. Il est par conséquent + fortement recommandé de ne pas utiliser cette + option. En particulier, prêtez attention aux chaînes en entrée contenant le + caractère '@', qui peuvent modifier l'interprétation + de l'URI réécrite, comme indiqué dans les liens ci-dessus.

+
+
+ +
MergeBase
+
+ +

Avec cette option, la valeur de la directive RewriteBase est recopiée depuis + une valeur explicitement définie dans tout sous-répertoire qui ne + définit pas sa propre directive RewriteBase. Il s'agissait du + comportement par défaut avec les versions 2.4.0 à 2.4.3, et ce + drapeau qui permet de retrouver ce comportement est disponible + depuis la version 2.4.4 du serveur HTTP Apache.

+
+ +
IgnoreContextInfo
+
+ +

Lors d'une + substitution relative dans un contexte de répertoire (htaccess), + et si la directive RewriteBase n'a pas été définie, + ce module utilise des informations en provenance d'une extension + d'URL et du contexte du système de fichiers pour transformer la + sustitution relative en URL. Par exemple, les modules + mod_userdir et mod_alias + utilisent ces informations de contexte étendu.

@@ -201,13 +317,10 @@ la version version 2.1 RewriteMap Définit une fonction de mise en correspondance pour la recherche de mots-clés -RewriteMap nom de la correspondance type de -correspondance:source de la correspondance +RewriteMap MapName MapType:MapSource MapTypeOptions server configvirtual host -Il est possible de choisir entre plusieurs types de -bases de données depuis la version 2.0.41 du serveur HTTP Apache

La directive RewriteMap définit une @@ -218,24 +331,21 @@ bases de données depuis la version 2.0.41 du serveur HTTP Apache -

nom de la - correspondance est le nom de la table de correspondance +

MapName est le nom de la table de correspondance et servira à spécifier une fonction de mise en correspondance pour les chaînes de substitution d'une règle de réécriture selon une des constructions suivantes :

- ${ nom de la - correspondance : + ${ MapName : mot-clé }
- ${ nom de la - correspondance : + ${ MapName : mot-clé | valeur par défaut }

Lorsqu'une telle construction est rencontrée, la table de - correspondance Nom de la correspondance est consultée + correspondance MapName est consultée et la clé mot-clé recherchée. Si la clé est trouvée, la construction est remplacée par la valeur de remplacement. Si la clé n'est pas trouvée, @@ -248,19 +358,24 @@ bases de données depuis la version 2.0.41 du serveur HTTP ApachePar exemple, vous pouvez définir une directive RewriteMap comme suit

- + RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt - +

Vous pourrez ensuite utiliser cette table dans une directive RewriteRule comme suit :

- + RewriteRule ^/ex/(.*) ${map-exemple:$1} - + + +

La signification de l'argument MapTypeOptions dépend du MapType + spécifié. Veuillez vous référer au document Utiliser RewriteMap pour + plus de détails.

Les combinaisons suivantes pour type de correspondance - et source de la correspondance + et MapSource peuvent être utilisées :

@@ -287,12 +402,12 @@ bases de données depuis la version 2.0.41 du serveur HTTP Apacheprg
Appelle un programme externe ou un script pour effectuer la - réécriture (Détails + réécriture (Détails ...).
dbd or fastdbd
Une commande SQL SELECT à exécuter pour rechercher la cible - de réécriture (Détails + de réécriture (Détails ...).
@@ -306,57 +421,56 @@ href="../rewrite/rewritemap.html">RewriteMap HowTo.

RewriteBase Définit l'URL de base pour les réécritures au niveau répertoire -RewriteBase chemin URL +RewriteBase chemin_URL Pas de valeur par défaut directory.htaccess FileInfo -

La directive RewriteBase définit - explicitement le chemin URL de base (et non le chemin du - répertoire dans le système de fichiers !) pour les réécritures dans un contexte - de répertoire dont le résultat est la substitution d'un - chemin relatif. Lorsque vous utilisez une directive RewriteRule dans un fichier - .htaccess, mod_rewrite enlève le - préfixe de répertoire local avant d'effectuer le traitement, puis - réécrit ce qui reste de l'URL. Lorsque la réécriture est terminée, - mod_rewrite ajoute automatiquement le préfixe de - répertoire local (ou la valeur de la directive - RewriteBase si cette dernière est définie) - à la chaîne de substitution avant de la remettre à disposition du - serveur, comme s'il s'agissait de l'URL d'origine.

- -

Cette directive est requise pour les réécritures - dans un contexte de répertoire défini via la directive - Alias lorsque la - substitution utilise un chemin relatif.

- -

Si votre chemin URL n'existe pas réellement dans le système de - fichiers, ou ne trouve pas directement sous le répertoire défini - par la directive DocumentRoot, vous devez utiliser la - directive RewriteBase dans chaque fichier - .htaccess où vous voulez utiliser des directives RewriteRule.

- -

L'exemple ci-dessous montre comment faire correspondre - http://example.com/mon-appli/index.html à - /home/www/exemple/nouveau_site.html dans un fichier - .htaccess. On suppose que le contenu disponible à - http://example.com/ se situe sur le disque à - /home/www/exemple/.

- - -
-RewriteEngine On
-# Le chemin URL utilisé pour arriver dans ce contexte, et non le chemin
-# du système de fichiers
-RewriteBase /mon-appli/
-RewriteRule ^index\.html$  nouveau_site.html
-
-
+

La directive RewriteBase permet de + spécifier le préfixe d'URL à utiliser dans un contexte de + répertoire (htaccess) pour les directives + RewriteRule qui réécrivent vers un chemin + relatif.

+

Cette directive est obligatoire si vous utilisez un + chemin relatif dans une substitution, et dans un contexte de + répertoire (htaccess), sauf si au moins une de ces conditions est + vérifiée :

+
    +
  • La requête initiale, ainsi que la substitution, se + situent par raport à la valeur de la directive + DocumentRoot (c'est à + dire que pour y accéder, il n'est pas nécessaire d'utiliser + une directive telle qu'Alias).
  • +
  • Le chemin du système de fichiers vers le répertoire + contenant la RewriteRule, suffixé par + la substitution relative est aussi valide en tant qu'URL sur + le serveur (ce qui est rare).
  • +
  • A partir de la version 2.4.11 du serveur HTTP Apache, + cette directive peut être omise lorsque la requête est mise en + correspondance avec le système de fichiers via la directive + Alias ou le module + mod_userdir.
  • +
+ +

Dans l'exemple ci-dessous, la directive +RewriteBase est nécessaire afin d'éviter une +réécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la +ressource n'était pas relative à la racine des documents. Cette erreur +de configuration aurait conduit le serveur à rechercher un répertoire +"opt" à la racine des documents.

+ + +DocumentRoot /var/www/example.com +AliasMatch ^/myapp /opt/myapp-1.2.3 +<Directory /opt/myapp-1.2.3> + RewriteEngine On + RewriteBase /myapp/ + RewriteRule ^index\.html$ welcome.html +</Directory> +
@@ -368,7 +482,7 @@ RewriteRule ^index\.html$ nouveau_site.html la réécriture soit effectuée RewriteCond - chaîne de test expression de comparaison + chaîne_de_test expression_de_comparaison
server configvirtual host directory.htaccess FileInfo @@ -401,8 +515,8 @@ la réécriture soit effectuée : ce sont des références arrières de la forme %N (0 <= N <= 9). %1 à %9 permettent d'accéder aux parties regroupées (entre - parenthèses) du modèle, issues de la RewriteRule - concernée par le jeu de conditions RewriteCond + parenthèses) du modèle, issues de la dernière + condition RewriteCond satisfaite du jeu de conditions RewriteCond courant. %0 donne accès à l'ensemble de la chaîne correspondant au modèle.
  • @@ -428,26 +542,30 @@ la réécriture soit effectuée - HTTP_USER_AGENT
    - HTTP_REFERER
    + HTTP_ACCEPT
    HTTP_COOKIE
    HTTP_FORWARDED
    HTTP_HOST
    HTTP_PROXY_CONNECTION
    - HTTP_ACCEPT
    + HTTP_REFERER
    + HTTP_USER_AGENT
    + AUTH_TYPE
    + CONN_REMOTE_ADDR
    + CONTEXT_PREFIX
    + CONTEXT_DOCUMENT_ROOT
    + IPV6
    + PATH_INFO
    + QUERY_STRING
    REMOTE_ADDR
    REMOTE_HOST
    + REMOTE_IDENT
    REMOTE_PORT
    REMOTE_USER
    - REMOTE_IDENT
    REQUEST_METHOD
    SCRIPT_FILENAME
    - PATH_INFO
    - QUERY_STRING
    - AUTH_TYPE
    @@ -460,9 +578,11 @@ la réécriture soit effectuée DOCUMENT_ROOT
    + SCRIPT_GROUP
    + SCRIPT_USER
    + SERVER_ADDR
    SERVER_ADMIN
    SERVER_NAME
    - SERVER_ADDR
    SERVER_PORT
    SERVER_PROTOCOL
    SERVER_SOFTWARE
    @@ -481,12 +601,14 @@ la réécriture soit effectuée API_VERSION
    - THE_REQUEST
    - REQUEST_URI
    - REQUEST_FILENAME
    - IS_SUBREQ
    + CONN_REMOTE_ADDR
    HTTPS
    - REQUEST_SCHEME
    + IS_SUBREQ
    + REMOTE_ADDR
    + REQUEST_FILENAME
    + REQUEST_SCHEME
    + REQUEST_URI
    + THE_REQUEST
    @@ -494,8 +616,10 @@ la réécriture soit effectuée

    Ces variables correspondent toutes aux en-têtes MIME HTTP de mêmes noms, au variables C du serveur HTTP Apache, ou aux champs struct tm du système Unix. La - plupart d'entre elles sont documentées ailleurs dans le - manuel ou dans la spécification CGI.

    + plupart d'entre elles sont documentées ici, dans la + spécification CGI ou ailleurs dans le + manuel.

    SERVER_NAME et SERVER_PORT dépendent respectivement des valeurs des directives

    -
    IS_SUBREQ
    - -
    Contient le texte "true" si la requête en cours - de traitement est une sous-requête, "false" dans le - cas contraire. Une sous-requête est générée quand un - module a besoin de se référer à des fichiers ou URIs - addidionnels pour pouvoir mener à bien sa tâche.
    -
    API_VERSION
    C'est la version de l'API des modules Apache httpd @@ -527,21 +643,30 @@ la réécriture soit effectuée il s'agit de la version 19990320:10), mais intéresse principalement les auteurs de modules.
    -
    THE_REQUEST
    +
    CONN_REMOTE_ADDR
    -
    La ligne de requête HTTP complète envoyée par le - navigateur au serveur (par exemple, "GET - /index.html HTTP/1.1"), à l'exclusion de tout - en-tête ajouté par le navigateur. Cette - valeur n'a pas été déséchappée (décodée), à la - différence de la plupart des variables suivantes.
    +
    A partir de la version 2.4.8 : l'adresse IP distante de + la connexion (voir le module + mod_remoteip).
    + +
    HTTPS
    + +
    Contient le texte "on" si la connexion + utilise SSL/TLS, "off" dans le cas contraire + (Cette variable peut être utilisée sans problème, que + mod_ssl soit chargé ou non).
    -
    REQUEST_URI
    +
    IS_SUBREQ
    + +
    Contient le texte "true" si la requête en cours + de traitement est une sous-requête, "false" dans le + cas contraire. Une sous-requête est générée quand un + module a besoin de se référer à des fichiers ou URIs + addidionnels pour pouvoir mener à bien sa tâche.
    -
    La partie chemin de l'URI de la requête, comme - "/index.html". En particulier, ceci exclut la chaîne - de paramètres qui est quant à elle disponible via sa - propre variable QUERY_STRING.
    +
    REMOTE_ADDR
    +
    L'adresse IP de l'hôte distant (se référer au + module mod_remoteip).
    REQUEST_FILENAME
    @@ -551,14 +676,12 @@ la réécriture soit effectuée au moment où on y fait référence. Dans le cas contraire, et en particulier dans le cas d'un serveur virtuel, REQUEST_FILENAME contient la - valeur de REQUEST_URI. - -
    HTTPS
    - -
    Contient le texte "on" si la connexion - utilise SSL/TLS, "off" dans le cas contraire - (Cette variable peut être utilisée sans problème, que - mod_ssl soit chargé ou non.
    + valeur de REQUEST_URI. En fonction de la + valeur de la directive AcceptPathInfo, le serveur + peut n'utiliser que certains éléments de tête du + REQUEST_URI pour déterminer à quel + fichier correspond la requête.
    REQUEST_SCHEME
    @@ -567,15 +690,33 @@ la réécriture soit effectuée la directive ServerName. +
    REQUEST_URI
    + +
    La partie chemin de l'URI de la requête, comme + "/index.html". Ceci exclut en particulier la chaîne de + paramètres de la requête qui est contenue dans la + variable QUERY_STRING.
    + +
    THE_REQUEST
    + +
    La ligne de requête HTTP complète envoyée par le + navigateur au serveur (par exemple, "GET + /index.html HTTP/1.1"), à l'exclusion de tout + en-tête ajouté par le navigateur. Cette + valeur n'a pas été déséchappée (décodée), à la + différence de la plupart des variables suivantes.
  • -

    Si la chaîne de test contient la valeur spéciale - expr, expression de comparaison sera traité +

    Si la chaîne_de_test contient la valeur spéciale + expr, expression_de_comparaison sera traité en tant qu'expression rationnelle de type ap_expr.

    + href="../expr.html">ap_expr. Si des en-têtes HTTP sont + référencés dans l'expression rationnelle, et si le drapeau + novary n'est pas activé, ils seront ajoutés à + l'en-tête Vary.

    Autres points à connaître ::

      @@ -644,7 +785,7 @@ la réécriture soit effectuée
    1. A des fins de référence avant, on peut utiliser, - %{LA-U:variable}, qui + %{LA-U:variable}, qui permet d'effectuer une sous-requête interne à base d'URL, afin de déterminer la valeur finale de variable. Ceci permet d'accéder à la valeur d'une variable pour la réécriture inconnue @@ -670,22 +811,23 @@ la réécriture soit effectuée
    -

    expression de comparaison est une expression +

    expression_de_comparaison est une expression rationnelle qui est appliquée à l'instance actuelle de - chaîne de test. chaîne de test est d'abord + chaîne_de_test. chaîne_de_test est d'abord évaluée, puis comparée à - l'expression de comparaison.

    + l'expression_de_comparaison.

    -

    expression de comparaison est en général une +

    expression_de_comparaison est en général une expression rationnelle compatible perl, mais vous disposez des syntaxes supplémentaires suivantes pour effectuer - d'autres tests utiles sur chaîne de test : + d'autres tests utiles sur chaîne_de_test :

    1. Vous pouvez préfixer l'expression avec un caractère - '!' (point d'exclamation) pour indiquer une - expression de non-correspondance.
    2. + '!' (point d'exclamation) pour inverser le résultat + de la condition, quelle que soit l'expression de + comparaison utilisée.
    3. Vous pouvez effectuer des comparaisons lexicographiques de chaînes : @@ -695,45 +837,45 @@ la réécriture soit effectuée lexicographique)
      Traite l'expression comme une chaîne de caractères et la compare lexicographiquement à - chaîne de test. La condition est satisfaite si - chaîne de test est inférieure au sens + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est inférieure au sens lexicographique à l'expression.
    4. '>expression' (supérieur au sens lexicographique)
      Traite l'expression comme une chaîne de caractères et la compare lexicographiquement à - chaîne de test. La condition est satisfaite si - chaîne de test est supérieure au sens + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est supérieure au sens lexicographique à l'expression.
    5. '=expression' (égal au sens lexicographique)
      Traite l'expression comme une chaîne de caractères et la compare lexicographiquement à - chaîne de test. La condition est satisfaite si - chaîne de test est égale au sens + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est égale au sens lexicographique à l'expression (les deux chaînes sont exactement identiques, caractère pour caractère). Si expression est "" (deux guillemets), - chaîne de test est comparée à la chaîne vide.
    6. + chaîne_de_test est comparée à la chaîne vide.
    7. '<=expression de comparaison' (inférieur ou égal à au sens lexicographique)
      - Considère l'expression de comparaison comme une + Considère l'expression_de_comparaison comme une chaîne de caractères et la compare au sens lexicographique à - la chaîne de test. Vrai si chaîne de test - précède lexicographiquement expression de comparaison, ou est - égale à expression de comparaison (les deux chaînes + la chaîne_de_test. Vrai si chaîne_de_test + précède lexicographiquement expression_de_comparaison, ou est + égale à expression_de_comparaison (les deux chaînes sont identiques, caractère pour caractère).
    8. '>=expression de comparaison' (supérieur ou égal à au sens lexicographique)
      - Considère l'expression de comparaison comme une + Considère l'expression_de_comparaison comme une chaîne de caractères et la compare au sens lexicographique à - la chaîne de test. Vrai si chaîne de test - suit lexicographiquement expression de comparaison, ou est - égale à expression de comparaison (les deux chaînes + la chaîne_de_test. Vrai si chaîne_de_test + suit lexicographiquement expression_de_comparaison, ou est + égale à expression_de_comparaison (les deux chaînes sont identiques, caractère pour caractère).
    9. @@ -742,43 +884,43 @@ la réécriture soit effectuée -Note : - Tous ces tests peuvent aussi être préfixés par un point - d'exclamation ('!') pour inverser leur signification. -
    10. -

      Si la chaîne de test contient la valeur spéciale +

      Si la chaîne_de_test contient la valeur spéciale expr, la chaîne de comparaison sera traitée en tant qu'expression rationnelle de type ap_expr.

      @@ -866,14 +1010,14 @@ la réécriture soit effectuée non désiré.

      - + RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"
      RewriteRule ^/images - [F] -
      +
    11. Vous pouvez aussi définir certains drapeaux pour - l'expression de comparaison en ajoutant ces + l'expression_de_comparaison en ajoutant ces [drapeaux] comme troisième argument de la directive RewriteCond, où drapeaux est un @@ -884,10 +1028,10 @@ la réécriture soit effectuée (no case)
      Rend le test insensible à la casse - il n'est pas fait de distinction entre majuscules et minuscules, à la fois dans le - développement de chaîne de test et dans - expression de comparaison. Ce drapeau n'est pris en - compte que lors d'une comparaison entre chaîne de test - et expression de comparaison. Il ne l'est pas pour les + développement de chaîne_de_test et dans + expression_de_comparaison. Ce drapeau n'est pris en + compte que lors d'une comparaison entre chaîne_de_test + et expression_de_comparaison. Il ne l'est pas pour les vérification par sous-requêtes ou sur le système de fichiers.
    12. @@ -897,14 +1041,12 @@ la réécriture soit effectuée Permet de chaîner les conditions de règles avec un OU au lieu du AND implicite. Exemple typique : - -
      +
       RewriteCond %{REMOTE_HOST}  ^host1  [OR]
       RewriteCond %{REMOTE_HOST}  ^host2  [OR]
       RewriteCond %{REMOTE_HOST}  ^host3
       RewriteRule ...règles concernant tous ces hôtes...
      -
      -
      + Sans ce drapeau, les paires condition/règle devraient être écrites trois fois. @@ -930,31 +1072,20 @@ RewriteRule ...règles concernant tous ces hôtes... l'en-tête ``User-Agent:'' de la requête, vous pouvez utiliser ce qui suit :

      - -
      -RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla
      -RewriteRule  ^/$                 /homepage.max.html  [L]
      -
      -RewriteCond  %{HTTP_USER_AGENT}  ^Lynx
      -RewriteRule  ^/$                 /homepage.min.html  [L]
      +
      +RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
      +RewriteRule  ^/$                 /homepage.mobile.html  [L]
       
       RewriteRule  ^/$                 /homepage.std.html  [L]
      -
      -
      +

      Explications : si vous utilisez un navigateur - (Netscape Navigator, Mozilla etc) qui s'identifie comme - 'Mozilla', vous accèderez à la page d'accueil max (qui - peut contenir des frames, ou d'autres ressources - particulières). - Si vous utilisez le navigateur Lynx (qui est un navigateur - en mode texte), vous accèderez à une page d'accueil min - (qui peut être une version conçue pour une navigation simple - basée sur le texte). - Si aucune de ces conditions n'est satisfaite (vous utilisez tout - autre navigateur, ou votre navigateur s'identifie de manière non - standard), vous accèderez à la page d'accueil std - (standard).

      + qui s'identifie comme un + navigateur de plateforme mobile (notez que l'exemple est + incomplet car il existe de nombreuses autres plateformes + mobiles), c'est la version pour mobile de la page d'accueil qui + sera renvoyée. Dans le cas contraire, ce sera la page d'accueil + standard.

      @@ -982,9 +1113,12 @@ RewriteRule ^/$ /homepage.std.html [L] expression rationnelle compatible perl. Dans la première règle de réécriture, l'expression est comparée au (%-decoded) - chemin de l'URL de la - requête ; les expressions suivantes sont comparées à la sortie de - la dernière règle de réécriture qui a été appliquée.

      + chemin de l'URL (ou au + chemin fichier, en + fonction du contexte) de la + requête. Les expressions suivantes sont comparées à la sortie de + la dernière règle de réécriture qui + correspondait.

      <a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est comparé ?</a> @@ -998,7 +1132,7 @@ RewriteRule ^/$ /homepage.std.html [L] module="core">Directory et htaccess, le modèle est tout d'abord comparé au chemin du système de fichiers, après suppression du préfixe ou chemin de base - ayant conduit à la règle RewriteRule (par + ayant conduit le serveur vers la règle RewriteRule (par exemple "app1/index.html" ou "index.html" selon l'endroit où les directives sont définies).

      @@ -1051,8 +1185,11 @@ signifie que la comparaison s'effectue avec une chaîne qui ne comporte
    13. Bien que les règles de réécriture soient permises du point de vue de la syntaxe dans les sections Location et Files, elles n'y sont pas prises en compte, et -n'y sont à priori d'aucune utilité.
    14. +module="core">Files (y compris leurs versions sous forme +d'expression rationnelle), elles n'y sont pas prises en compte, et +n'y sont à priori d'aucune utilité. Les substitutions +relatives sont une fonctionnalité qui n'est, elle non-plus pas supportée +dans ce genre de contexte.
      @@ -1092,7 +1229,12 @@ substitution !
      un chemin du système de fichiers
      Il indique alors la localisation dans le système de - fichiers de la ressource qui doit être envoyée au client.
      + fichiers de la ressource qui doit être envoyée au + client. Les substitutions ne sont traitées en tant que chemins du + système de fichiers que si la règle est configurée dans un + contexte de serveur (serveur virtuel), et si le premier + composant du chemin dans la substitution existe dans le système + de fichiers.
      chemin d'URL
      @@ -1106,7 +1248,9 @@ substitution ! Substitution /www/file.html, cette dernière sera traitée comme un chemin d'URL à moins qu'un répertoire nommé www n'existe à la racine - de votre système de fichiers, auquel cas la chaîne de + de votre système de fichiers (ou dans le cas d'une + réécriture au sein d'un fichier .htaccess, + relativement à la racine des documents), auquel cas la chaîne de substitution sera traitée comme un chemin du système de fichiers. Si vous désirez que d'autres directives de correspondance d'URL (comme la directive $N (N=0..9), qui seront remplacés par le contenu du Nème groupe du Modèle qui correspondait. Les variables du serveur - sont les mêmes que dans la Chaîne de test d'une + sont les mêmes que dans la Chaîne_de_test d'une directive RewriteCond. Les fonctions de comparaison sont issues de la directive RewriteMap dans la section de laquelle elles sont décrites. Ces trois types de @@ -1164,7 +1308,7 @@ substitution !

      Chaque règle de réécriture s'applique au résultat de la règle précédente, selon l'ordre dans lequel elles ont été définies dans - le fichier de configuration. L'URI du chemin du fichier (voir + le fichier de configuration. Le chemin de l'URL ou du système de fichier (voir ci-dessus Qu'est-ce qui est comparé ?) est intégralement remplacée par la chaîne de Substitution et le @@ -1202,18 +1346,29 @@ substitution ! href="../rewrite/flags.html">document à propos des drapeaux de réécriture.

      - +
      - - + + + + + + + + + + - @@ -1324,15 +1488,6 @@ substitution ! href="../rewrite/flags.html#flag_r">détails ... - - - -
      Drapeaux et syntaxe Fonction
      BEchappe les caractères non-alphanumériques avant + Echappe les caractères non-alphanumériques + dans les références arrières avant d'appliquer la transformation. détails ...
      chain|Cbackrefnoplus|BNPAvec ce drapeau, si les références arrières sont échappées, + les espaces seront échappés en %20 au lieu de +. Ceci s'avère + utile lorsqu'une référence arrière est utilisée dans la partie + chemin, et non dans la chaîne de paramètres de la requête ; + pour plus de détails, voir ici.
      chain|C La règle est chaînée avec la règle suivante. Si la règle échoue, la ou les règles avec lesquelles elle est est chaînée seront sautées.
      ENDStoppe le processus de réécriture immédiatement et + n'applique plus aucune règle. Empêche aussi l'application + ultérieure de règles de réécriture dans les contextes de + répertoire et de fichier .htaccess (disponible à partir de la + version 2.3.9 du serveur HTTP Apache). détails ...
      env|E=[!]VAR[:VAL] Définit la variable d'environnement VAR (à la valeur VAL si elle est fournie). La variante !VAR @@ -1306,9 +1470,9 @@ substitution !
      qsappend|QSAAjoute toute chaîne de paramètres créée dans la cible de - réécriture à toute chaîne de paramètres présente dans l'URL de la - requête originale. Ajoute toute chaîne de paramètres présente dans l'URL de la + requête originale à toute chaîne de paramètres créée dans la + cible de réécriture. détails ...
      ENDArrête le processus de réécriture immédiatement et - n'applique plus aucune règle. Empêche aussi l'exécution - ultérieure de règles de réécriture dans des contextes de - répertoire et des fichiers .htaccess (disponible depuis la - version 2.3.9) détails ...
      skip|S=nombre Si la règle courante s'applique, le moteur de réécriture @@ -1366,7 +1521,7 @@ utilisé dans la directive RewriteRule'':

      - +
      @@ -1442,7 +1597,7 @@ redondant) /chemin/chemin-local/infochemin'':

      -
      Règle Résultat de la substitution
      +
      Règle