From: Lucien Gentis Date: Sat, 6 Feb 2016 17:34:33 +0000 (+0000) Subject: XML updates. X-Git-Tag: 2.5.0-alpha~2184 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fd9e6e19eef1bda4bcbb9f581b3eea7ddb7362b;p=apache XML updates. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1728855 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_remoteip.xml.fr b/docs/manual/mod/mod_remoteip.xml.fr index 2590f4c9d8..91ec2990f3 100644 --- a/docs/manual/mod/mod_remoteip.xml.fr +++ b/docs/manual/mod/mod_remoteip.xml.fr @@ -1,4 +1,4 @@ - + @@ -25,9 +25,9 @@ mod_remoteip -Remplace l'adresse IP et le nom d'hôte apparents du client -pour la requête par l'adresse IP présentée par un mandataire ou un -répartiteur de charge via les en-têtes de la requête. +Remplace l'adresse IP du client +pour la requête par l'adresse IP présentée par un mandataire ou un +répartiteur de charge via les en-têtes de la requête. Base @@ -35,111 +35,109 @@ répartiteur de charge via les en-têtes de la requête. remoteip_module -

Ce module permet de traiter l'hôte distant qui a initié la - requête en tant qu'hôte distant original du point de vue de httpd à - des fins d'autorisation et de connexion, même si cet hôte distant se - trouve derrière un répartiteur de charge, un serveur frontal, ou un +

Ce module permet de traiter le client qui a initié la + requête en tant que client original du point de vue de httpd à + des fins d'autorisation et de connexion, même si ce client se + trouve derrière un répartiteur de charge, un serveur frontal, ou un serveur mandataire.

-

Le module remplace les adresse IP et nom d'hôte apparents - distants (du client) pour la requête par l'adresse IP indiquée dans - l'en-tête de requête configuré via la directive +

Le module remplace l'adresse IP du client + pour la connexion par l'adresse IP indiquée dans + l'en-tête de requête configuré via la directive RemoteIPHeader.

-

Une fois remplacée comme indiqué, cette adresse IP apparente est - utilisée pour la fonctionnalité Require ip de - mod_authz_host ; elle est aussi affichée par - mod_status, et enregistrée via les directives - %a et %h du module - mod_log_config. Elle permet aussi d'identifier la - machine en essayant de lui attribuer une identité inetd via le - module mod_ident et en fonction de la configuration - de la directive IdentityCheck.

+

Une fois sa valeur modifiée comme indiqué, cette adresse IP client est + utilisée pour la fonctionnalité Require ip de + mod_authz_host ; elle est aussi affichée par + mod_status, et enregistrée via les chaînes de formatage + %a des modules mod_log_config et core. + L'adresse IP client sous-jacente de la connexion est enregistrée via la chaîne de + formatage %{c}a. +

Il est essentiel de n'activer cette - fonctionnalité que pour les requêtes en provenance des serveurs - intermédiaires (mandataires, etc...) auxquels le serveur peut faire + fonctionnalité que pour les requêtes en provenance des serveurs + intermédiaires (mandataires, etc...) auxquels le serveur peut faire confiance, car il est trivial pour le client distant d'usurper - l'identité d'un autre client. + l'identité d'un autre client.
mod_authz_host mod_status mod_log_config -mod_ident
Traitement des adresses distantes -

Apache identifie le client par la valeur remote_ip de la - connexion, et de cette valeur découlent les valeurs remote_host et - remote_logname de la connexion. Ces champs jouent un rôle - dans l'authentification, l'autorisation et la connexion, ainsi que - dans d'autres traitements effectués par d'autres modules +

Par défaut, Apache identifie le client via la valeur client_ip de la + connexion, et de cette valeur découlent les valeurs remote_host et + remote_logname de la connexion. Ces champs jouent un rôle + dans l'authentification, l'autorisation et la journalisation, ainsi que + dans d'autres traitements effectués par d'autres modules chargeables.

-

mod_remoteip remplace la véritable remote_ip par la remote_ip - indiquée par exemple par un mandataire chaque fois que le serveur - effectue une évaluation du client, et réinitialise les valeurs de - remote_host et remote_logname afin de déclencher une nouvelle - requête dns ou ident sur l'adresse IP distante.

- -

Lorsque la valeur de l'en-tête comporte plusieurs adresses IP - distantes séparées par des virgules, celles-ci sont traitées de la - droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP - distante courante n'est pas digne de confiance pour présenter - l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de - façon à ne contenir que cette liste d'adresses non confirmées, ou +

mod_remoteip remplace l'adresse IP client de la connexion par l'adresse IP client + indiquée par exemple par un mandataire ou un répartiteur de charge + pour toute la durée de la requête. Un répartiteur de charge pourra ainsi + établir une connexion keepalive de longue durée avec le serveur, chaque + requête conservant alors l'adresse IP client correcte bien que l'adresse IP + client sous-jacente du répartiteur de charge reste inchangée.

+ +

Lorsque la valeur de l'en-tête comporte plusieurs adresses IP + client séparées par des virgules, celles-ci sont traitées de la + droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP + client courante n'est pas digne de confiance pour présenter + l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de + façon à ne contenir que cette liste d'adresses non confirmées, ou bien, si toutes les adresses IP sont dignes de confiance, cet - en-tête est tout bonnement supprimé de la requête.

+ en-tête est tout bonnement supprimé de la requête.

-

Lors du remplacement de l'adresse IP distante, le module stocke - la liste des hôtes intermédiaires dans un mémo +

Lors du remplacement de l'adresse IP client, le module stocke + la liste des hôtes intermédiaires dans un mémo remoteip-proxy-ip-list, que l'on peut faire enregistrer par mod_log_config en utilisant le symbole de format %{remoteip-proxy-ip-list}n. Si l'administrateur doit - stocker ceci dans un en-tête additionnel, la même valeur peut aussi - être enregistrée sous la forme d'un en-tête en utilisant la + stocker ceci dans un en-tête additionnel, la même valeur peut aussi + être enregistrée sous la forme d'un en-tête en utilisant la directive RemoteIPProxiesHeader.

Adresses IPv4 converties au format IPv6 - Avec httpd, d'une manière générale, toute adresse IPv4 convertie au - format IPv6 est enregistrée sous sa forme IPv4. + Avec httpd, d'une manière générale, toute adresse IPv4 convertie au + format IPv6 est enregistrée sous sa forme IPv4. - Adresses internes (privées) + Adresses internes (privées) Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc - public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque + public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque des mandataires internes (intranet) - RemoteIPInternalProxy sont enregistrés. + RemoteIPInternalProxy sont enregistrés.
RemoteIPHeader -Définit le champ d'en-tête qui contiendra les adresses IP +Définit le champ d'en-tête qui contiendra les adresses IP du client -RemoteIPHeader en-tête +RemoteIPHeader en-tête server configvirtual host -

La directive RemoteIPHeader indique à +

La directive RemoteIPHeader indique à mod_remoteip de traiter la valeur de - l'en-tête spécifié comme l'adresse IP du client, ou comme - une liste d'adresses IP clients intermédiaires, en fonction de la + l'en-tête spécifié comme l'adresse IP du client, ou comme + une liste d'adresses IP clients intermédiaires, en fonction de la configuration des directives RemoteIPInternalProxy et RemoteIPTrustedProxy.

- Si ces deux dernières - directives ne sont pas utilisées, mod_remoteip - traitera tout hôte présentant une adresse non interne - dans l'en-tête RemoteIPHeader comme hôte de + Si ces deux dernières + directives ne sont pas utilisées, mod_remoteip + traitera tout hôte présentant une adresse non interne + dans l'en-tête RemoteIPHeader comme hôte de confiance. - Exemple à usage interne (répartiteur de + <example><title>Exemple à usage interne (répartiteur de charge) RemoteIPHeader X-Client-IP @@ -156,23 +154,23 @@ du client
RemoteIPInternalProxy -Déclare les adresses IP intranet clients comme dignes de -confiance pour présenter la valeur RemoteIPHeader +Déclare les adresses IP intranet clients comme dignes de +confiance pour présenter la valeur RemoteIPHeader RemoteIPInternalProxy -ip-mandataire|ip-mandataire/sous-réseau|nom-hôte ... +ip-mandataire|ip-mandataire/sous-réseau|nom-hôte ... server configvirtual host

La directive RemoteIPInternalProxy permet d'ajouter une ou plusieurs adresses (ou blocs d'adresses) auxquelles - on peut faire confiance pour présenter une valeur RemoteIPHeader - valide de l'adresse IP du client. A la différence de la directive + on peut faire confiance pour présenter une valeur RemoteIPHeader + valide de l'adresse IP du client. A la différence de la directive RemoteIPTrustedProxy, toute adresse IP - présentée dans cet en-tête, y comprises les adresses intranet - privées, sont considérées comme dignes de confiance lorsqu'elles - sont indiquées par ces mandataires.

+ présentée dans cet en-tête, y comprises les adresses intranet + privées, sont considérées comme dignes de confiance lorsqu'elles + sont indiquées par ces mandataires.

- Exemple à usage interne (répartiteur de + <example><title>Exemple à usage interne (répartiteur de charge) RemoteIPHeader X-Client-IP @@ -185,26 +183,26 @@ RemoteIPInternalProxy gateway.localdomain RemoteIPInternalProxyList -Déclare les adresses IP intranet clients comme dignes de -confiance pour présenter la valeur RemoteIPHeader +Déclare les adresses IP intranet clients comme dignes de +confiance pour présenter la valeur RemoteIPHeader RemoteIPInternalProxyList nom-fichier server configvirtual host

La directive RemoteIPInternalProxyList - permet de spécifier un fichier parcouru au démarrage du serveur pour + permet de spécifier un fichier parcouru au démarrage du serveur pour construire une liste d'adresses (ou blocs d'adresses), auxquelles - on peut faire confiance pour présenter une valeur RemoteIPHeader + on peut faire confiance pour présenter une valeur RemoteIPHeader valide de l'adresse IP du client.

-

Le caractère '#' indique une ligne de commentaires, - sinon, toutes les lignes séparées par un caractère nouvelle +

Le caractère '#' indique une ligne de commentaires, + sinon, toutes les lignes séparées par un caractère nouvelle ligne ou - tous les éléments d'une ligne séparés par un espace sont traités de - la même façon qu'avec la directive + tous les éléments d'une ligne séparés par un espace sont traités de + la même façon qu'avec la directive RemoteIPInternalProxy.

- Exemple à usage interne (répartiteur de + <example><title>Exemple à usage interne (répartiteur de charge) RemoteIPHeader X-Client-IP @@ -216,7 +214,7 @@ RemoteIPInternalProxyList conf/trusted-proxies.lst
          # Nos mandataires internes de confiance
          10.0.2.0/24         # Tout le monde dans le groupe de test
-         passerelle.domaine-local # Le frontal répartiteur de charge
+         passerelle.domaine-local # Le frontal répartiteur de charge
     
@@ -224,19 +222,19 @@ RemoteIPInternalProxyList conf/trusted-proxies.lst RemoteIPProxiesHeader -Déclare le champ d'en-tête qui contiendra toutes les -adresses IP intermédiaires -RemoteIPProxiesHeader Nom_en-tête +Déclare le champ d'en-tête qui contiendra toutes les +adresses IP intermédiaires +RemoteIPProxiesHeader Nom_en-tête server configvirtual host

La directive RemoteIPProxiesHeader permet - de spécifier l'en-tête dans lequel mod_remoteip va - collecter une liste de toutes les adresses IP clients intermédiaires - auxquelles on pourra faire confiance pour résoudre la véritable - adresse IP distante. Notez que les adresses intermédiaires - RemoteIPTrustedProxy sont enregistrées dans - cet en-tête, alors que toute adresse intermédiaire + de spécifier l'en-tête dans lequel mod_remoteip va + collecter une liste de toutes les adresses IP clients intermédiaires + auxquelles on pourra faire confiance pour résoudre l'adresse IP + client de la requête. Notez que les adresses intermédiaires + RemoteIPTrustedProxy sont enregistrées dans + cet en-tête, alors que toute adresse intermédiaire RemoteIPInternalProxy est omise.

Exemple @@ -251,33 +249,33 @@ RemoteIPProxiesHeader X-Forwarded-By RemoteIPTrustedProxy Restreint les adresses IP clients dignes de -confiance pour présenter la valeur RemoteIPHeader +confiance pour présenter la valeur RemoteIPHeader
RemoteIPTrustedProxy -ip-mandataire|ip-mandataire/sous-réseau|nom-hôte ... +ip-mandataire|ip-mandataire/sous-réseau|nom-hôte ... server configvirtual host

La directive RemoteIPTrustedProxy permet - de définir quelles adresses IP (ou blocs d'adresses) seront - considérées comme de confiance pour présenter une valeur RemoteIPHeader + de définir quelles adresses IP (ou blocs d'adresses) seront + considérées comme de confiance pour présenter une valeur RemoteIPHeader valide de l'adresse IP du client.

-

A la différence de la directive +

A la différence de la directive RemoteIPInternalProxy, toutes les adresses IP - intranet ou privées indiquées par de tels mandataires, y compris les + intranet ou privées indiquées par de tels mandataires, y compris les blocs d'adresses 10/8, 172.16/12, 192.168/16, 169.254/16 et 127/8 - (ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas - dignes de confiance en tant qu'adresses IP distantes, et se situent - à gauche dans le contenu de l'en-tête + (ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas + dignes de confiance en tant qu'adresses IP clientes, et se situent + à gauche dans le contenu de l'en-tête RemoteIPHeader.

- Par défaut, mod_remoteip - considérera comme de confiance tout hôte présentant une adresse non - interne dans l'en-tête Par défaut, mod_remoteip + considérera comme de confiance tout hôte présentant une adresse non + interne dans l'en-tête RemoteIPHeader. - Exemple d'adresse de confiance (répartiteur de + <example><title>Exemple d'adresse de confiance (répartiteur de charge RemoteIPHeader X-Forwarded-For @@ -291,24 +289,24 @@ RemoteIPTrustedProxy proxy.example.com RemoteIPTrustedProxyList Restreint les adresses IP clients dignes de -confiance pour présenter la valeur RemoteIPHeader +confiance pour présenter la valeur RemoteIPHeader RemoteIPTrustedProxyList nom-fichier server configvirtual host

La directive RemoteIPTrustedProxyList - permet de spécifier un fichier parcouru au démarrage du serveur pour + permet de spécifier un fichier parcouru au démarrage du serveur pour construire une liste d'adresses (ou blocs d'adresses), auxquelles - on peut faire confiance pour présenter une valeur RemoteIPHeader + on peut faire confiance pour présenter une valeur RemoteIPHeader valide de l'adresse IP du client.

-

Le caractère '#' indique une ligne de commentaires, - sinon, toutes les lignes séparées par un caractère nouvelle ligne ou - tous les éléments d'une ligne séparés par un espace sont traités de - la même façon qu'avec la directive +

Le caractère '#' indique une ligne de commentaires, + sinon, toutes les lignes séparées par un caractère nouvelle ligne ou + tous les éléments d'une ligne séparés par un espace sont traités de + la même façon qu'avec la directive RemoteIPTrustedProxy.

- Exemple d'adresse de confiance (répartiteur de + <example><title>Exemple d'adresse de confiance (répartiteur de charge RemoteIPHeader X-Forwarded-For @@ -317,7 +315,7 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst conf/mandataires-de-confiance.lst contents - # Mandataires externes identifiés
+ # Mandataires externes identifiés
192.0.2.16/28 #groupe wap phone de mandataires
proxy.isp.example.com #un FAI bien connu
@@ -326,3 +324,4 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst
+ diff --git a/docs/manual/mod/mod_rewrite.xml.fr b/docs/manual/mod/mod_rewrite.xml.fr index 866da14bb5..7740932e6f 100644 --- a/docs/manual/mod/mod_rewrite.xml.fr +++ b/docs/manual/mod/mod_rewrite.xml.fr @@ -1,7 +1,7 @@ - + - + @@ -26,9 +26,9 @@ mod_rewrite -Ce module fournit un moteur de réécriture à base de -règles permettant de réécrire les URLs des requêtes -à la volée +Ce module fournit un moteur de réécriture à base de +règles permettant de réécrire les URLs des requêtes +à la volée Extension mod_rewrite.c @@ -36,47 +36,47 @@ 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 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 + réécriture à base de règles, basé sur un interpréteur + 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 - requête interne à destination du mandataire.

-

mod_rewrite fournit une méthode souple et - puissante pour manipuler les URLs en utilisant un nombre illimité - de règles. Chaque règle peut être associée à un nombre illimité de - conditions, afin de vous permettre de réécrire les URLs en + requête interne à destination du mandataire.

+

mod_rewrite fournit une méthode souple et + puissante pour manipuler les URLs en utilisant un nombre illimité + de règles. Chaque règle peut être associée à un nombre illimité de + conditions, afin de vous permettre de réécrire les URLs en fonction de variables du serveur, de variables d'environnement, - d'en-têtes HTTP, ou de repères temporels.

-

mod_rewrite agit sur la totalité de l'URL, y - compris la partie chemin. Une règle de réécriture peut être - invoquée dans httpd.conf ou dans un fichier - .htaccess. Le chemin généré par une règle de - réécriture peut inclure une chaîne de paramètres, ou peut renvoyer + d'en-têtes HTTP, ou de repères temporels.

+

mod_rewrite agit sur la totalité de l'URL, y + compris la partie chemin. Une règle de réécriture peut être + invoquée dans httpd.conf ou dans un fichier + .htaccess. Le chemin généré par une règle de + réécriture peut inclure une chaîne de paramètres, ou peut renvoyer vers un traitement secondaire interne, une redirection vers une - requête externe ou vers le mandataire interne.

+ requête externe ou vers le mandataire interne.

-

Vous trouverez d'avantage de détails, discussions et exemples +

Vous trouverez d'avantage de détails, discussions et exemples dans la - documentation détaillée + documentation détaillée sur mod_rewrite.

Journalisation -

mod_rewrite offre une journalisation détaillée - de ses actions aux niveaux de journalisation trace1 à - trace8. Le niveau de journalisation peut être défini de - manière spécifique à mod_rewrite via la directive +

mod_rewrite offre une journalisation détaillée + de ses actions aux niveaux de journalisation trace1 à + trace8. Le niveau de journalisation peut être défini de + manière spécifique à mod_rewrite via la directive LogLevel : jusqu'au niveau - debug aucune action n'est journalisée, alors qu'elles + debug aucune action n'est journalisée, alors qu'elles le sont pratiquement toutes au niveau trace8.

- L'utilisation d'un niveau de journalisation élevé pour + L'utilisation d'un niveau de journalisation élevé pour mod_rewrite va ralentir votre serveur HTTP Apache - de manière dramatique ! N'utilisez un niveau de journalisation - supérieur à trace2 qu'à des fins de débogage ! + de manière dramatique ! N'utilisez un niveau de journalisation + supérieur à trace2 qu'à des fins de débogage ! Exemple @@ -86,15 +86,15 @@ règles permettant de réécrire les URLs des requêtes RewriteLog -

Ceux qui sont familiers avec les versions précédentes de +

Ceux qui sont familiers avec les versions précédentes de mod_rewrite vont probablement rechercher en vain les directives RewriteLog et - RewriteLogLevel. Elles ont été en effet remplacées + RewriteLogLevel. Elles ont été en effet remplacées par une configuration de la journalisation par module, comme - mentionné plus haut. + mentionné plus haut.

-

Pour extraire les traces spécifiques à +

Pour extraire les traces spécifiques à mod_rewrite, affichez le fichier journal en redirigeant la sortie vers grep :

@@ -106,8 +106,8 @@ règles permettant de réécrire les URLs des requêtes RewriteEngine -Active ou désactive l'exécution du -moteur de réécriture +Active ou désactive l'exécution du +moteur de réécriture RewriteEngine on|off RewriteEngine off server configvirtual host @@ -117,27 +117,27 @@ moteur de réécriture

La directive RewriteEngine active ou - désactive l'exécution du moteur de réécriture. Si sa valeur est - off, ce module n'exécutera aucun traitement et ne - mettra pas à jour les variables d'environnement + désactive l'exécution du moteur de réécriture. Si sa valeur est + off, ce module n'exécutera aucun traitement et ne + mettra pas à jour les variables d'environnement SCRIPT_URx.

-

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.

+

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 - insérer une directive RewriteEngine on dans chaque - hôte virtuel pour lequel vous souhaitez utiliser des règles - de réécriture.

+

Notez que les hôtes virtuels n'héritent pas des + configurations de réécriture. Ceci implique que vous devez + insérer une directive RewriteEngine on dans chaque + hôte virtuel pour lequel vous souhaitez utiliser des règles + de réécriture.

Les directives RewriteMap du type prg ne sont pas prises en compte au cours de - l'initialisation du serveur si elle ont été définies dans un - contexte où la directive RewriteEngine n'a - pas été définie à on.

+ l'initialisation du serveur si elle ont été définies dans un + contexte où la directive RewriteEngine n'a + pas été définie à on.

@@ -145,50 +145,50 @@ moteur de réécriture RewriteOptions -Configure certaines options spéciales -pour le moteur de réécriture +Configure certaines options spéciales +pour le moteur de réécriture RewriteOptions Options server configvirtual host directory.htaccess FileInfo -

La directive RewriteOptions définit - certaines options spéciales pour la configuration au niveau du - serveur ou du répertoire. La chaîne de caractères Option +

La directive RewriteOptions définit + certaines options spéciales pour la configuration au niveau du + serveur ou du répertoire. La chaîne de caractères Option ne peut actuellement prendre qu'une des valeurs suivantes :

Inherit
-

Ceci force la configuration locale à hériter de la - configuration du niveau supérieur. Dans le contexte des hôtes +

Ceci force la configuration locale à hériter de la + configuration du niveau supérieur. Dans le contexte des hôtes virtuels, cela signifie que les correspondances, conditions et - règles du serveur principal sont héritées. Dans le contexte des - répertoires, cela signifie que les conditions et règles de la + règles du serveur principal sont héritées. Dans le contexte des + répertoires, cela signifie que les conditions et règles de la configuration .htaccess ou les sections Directory du répertoire - parent sont héritées. Les règles héritées sont virtuellement - copiées dans la section où cette directive est utilisée. Si elles - sont utilisées avec des règles locales, les règles héritées sont - placées après ces dernières. La place de cette directive - avant - ou après les règles locales - n'a aucune influence sur ce - comportement. Si des règles locales ont forcé l'arrêt de la - réécriture, les règles héritées ne seront pas traitées.

+ type="section" module="core">Directory du répertoire + parent sont héritées. Les règles héritées sont virtuellement + copiées dans la section où cette directive est utilisée. Si elles + sont utilisées avec des règles locales, les règles héritées sont + placées après ces dernières. La place de cette directive - avant + ou après les règles locales - n'a aucune influence sur ce + comportement. Si des règles locales ont forcé l'arrêt de la + réécriture, les règles héritées ne seront pas traitées.

- Les règles héritées du niveau parent sont appliquées - after après les règles spécifiées dans le niveau + Les règles héritées du niveau parent sont appliquées + after après les règles spécifiées dans le niveau enfant.
InheritBefore
-

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 +

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.

@@ -196,53 +196,53 @@ pour le moteur de réécriture
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 +

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 + 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 +

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 + 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 +

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 + 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 +

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. + module="mod_dir">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 + règles de réécriture qui correspondent à un répertoire sans slash final au sein de fichiers .htaccess.
- Elle est disponible à + Elle est disponible à partir de la version 2.4.0 du serveur HTTP Apache.

@@ -252,32 +252,32 @@ pour le moteur de réécriture

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 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 + 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.
+ 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.

+ 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.

@@ -285,11 +285,11 @@ pour le moteur de réécriture

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 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 + 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.

@@ -298,14 +298,14 @@ pour le moteur de réécriture

Lors d'une - substitution relative dans un contexte de répertoire (htaccess), + substitution relative dans un contexte de répertoire (htaccess), et si la directive RewriteBase n'a pas été définie, + module="mod_rewrite">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 + 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.

+ utilisent ces informations de contexte étendu.

@@ -315,47 +315,47 @@ pour le moteur de réécriture RewriteMap -Définit une fonction de mise en correspondance pour la -recherche de mots-clés +Définit une fonction de mise en correspondance pour la +recherche de mots-clés RewriteMap MapName MapType:MapSource MapTypeOptions server configvirtual host -

La directive RewriteMap définit une - Table de correspondance pour la réécriture que les +

La directive RewriteMap définit une + Table de correspondance pour la réécriture que les fonctions de mise en correspondance - peuvent utiliser dans les chaînes de substitution des règles - pour insérer/substituer des champs en recherchant des mots-clés. - La source utilisée pour cette recherche peut être de plusieurs + peuvent utiliser dans les chaînes de substitution des règles + pour insérer/substituer des champs en recherchant des mots-clés. + La source utilisée pour cette recherche peut être de plusieurs types.

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 + 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 :

${ MapName : - mot-clé }
+ mot-clé }
${ MapName : - mot-clé | valeur par défaut + mot-clé | valeur par défaut }

-

Lorsqu'une telle construction est rencontrée, la table de - 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, - elle est remplacée par la valeur par défaut, ou par une - chaîne vide si aucune valeur par défaut n'est - spécifiée. La valeur vide se comporte comme si la - clé était absente ; il est donc impossible de distinguer une - valeur vide d'une absence de clé.

- -

Par exemple, vous pouvez définir une directive +

Lorsqu'une telle construction est rencontrée, la table de + 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, + elle est remplacée par la valeur par défaut, ou par une + chaîne vide si aucune valeur par défaut n'est + spécifiée. La valeur vide se comporte comme si la + clé était absente ; il est donc impossible de distinguer une + valeur vide d'une absence de clé.

+ +

Par exemple, vous pouvez définir une directive RewriteMap comme suit

@@ -369,49 +369,49 @@ recherche de mots-clés RewriteRule "^/ex/(.*)" "${map-exemple:$1}" -

La signification de l'argument MapTypeOptions dépend du MapType - spécifié. Veuillez vous référer au document 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.

+ plus de détails.

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

+ peuvent être utilisées :

txt
-
Un fichier texte contenant des paires clé-valeur séparées +
Un fichier texte contenant des paires clé-valeur séparées par des espaces, une paire par ligne (Détails ...).
+ href="../rewrite/rewritemap.html#txt">Détails ...).
rnd
-
Sélection aléatoire d'une entrée depuis un fichier texte (Détails ...).
+
Sélection aléatoire d'une entrée depuis un fichier texte (Détails ...).
dbm
-
Recherche une entrée dans un fichier dbm contenant des - paires nom-valeur. Le condensé hash est élaboré à partir d'un +
Recherche une entrée dans un fichier dbm contenant des + paires nom-valeur. Le condensé hash est élaboré à partir d'un format de fichier texte via l'utilitaire httxt2dbm (Détails ...).
+ href="../rewrite/rewritemap.html#dbm">Détails ...).
int
Une des quatre fonctions internes disponibles que fournit RewriteMap: toupper, tolower, escape ou unescape - (Détails ...).
+ (Détails ...).
prg
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 +
Une commande SQL SELECT à exécuter pour rechercher la cible + de réécriture (Détails ...).
-

Vous trouverez plus de détails et de nombreux exemples dans le Vous trouverez plus de détails et de nombreux exemples dans le RewriteMap HowTo.

@@ -419,48 +419,48 @@ href="../rewrite/rewritemap.html">RewriteMap HowTo.

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

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 + 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 :

+ 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 +
  • 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 +
  • 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 + 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.

+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" @@ -478,66 +478,66 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3" RewriteCond -Définit une condition qui devra être satisfaite pour que -la réécriture soit effectuée +Définit une condition qui devra être satisfaite pour que +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 -

La directive RewriteCond permet de définir une - condition d'exécution d'une règle. Une ou plusieurs conditions - RewriteCond peuvent précéder une +

La directive RewriteCond permet de définir une + condition d'exécution d'une règle. Une ou plusieurs conditions + RewriteCond peuvent précéder une directive RewriteRule. La règle de réécriture correspondante n'est - ainsi exécutée que si ces conditions sont satisfaites, - et si l'URI correspond au modèle spécifié dans la - règle.

+ >RewriteRule. La règle de réécriture correspondante n'est + ainsi exécutée que si ces conditions sont satisfaites, + et si l'URI correspond au modèle spécifié dans la + règle.

-

TestString est une chaîne qui peut contenir les +

TestString est une chaîne qui peut contenir les extensions suivantes en plus du texte simple :

-

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. 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.

+ 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 ::

+

Autres points à connaître ::

  1. Les variables SCRIPT_FILENAME et @@ -726,291 +726,306 @@ la réécriture soit effectuée du champ filename de la structure interne request_recdu serveur HTTP Apache. Le premier nom correspond au nom de variable bien connu CGI, - alors que le second est l'équivalent de REQUEST_URI (qui + alors que le second est l'équivalent de REQUEST_URI (qui contient la valeur du champ uri de request_rec).

    -

    Si une substitution intervient et si la réécriture se - poursuit, la valeur des deux variables sera mise à jour en - conséquence.

    -

    Dans le contexte du serveur principal (c'est à dire avant que - la requête ne soit mise en correspondance avec le système de +

    Si une substitution intervient et si la réécriture se + poursuit, la valeur des deux variables sera mise à jour en + conséquence.

    +

    Dans le contexte du serveur principal (c'est à dire avant que + la requête ne soit mise en correspondance avec le système de fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas - contenir le chemin entier dans le système de fichiers local car - ce chemin b'est pas connu à ce stade du traitement. Dans ce cas, + contenir le chemin entier dans le système de fichiers local car + ce chemin b'est pas connu à ce stade du traitement. Dans ce cas, les deux variables contiendront la valeur de REQUEST_URI. Pour - obtenir le chemin complet de la requête dans le système de + obtenir le chemin complet de la requête dans le système de fichiers local dans le contexte du serveur principal, utilisez une - référence avant à base d'URL - %{LA-U:REQUEST_FILENAME} pour déterminer la valeur + référence avant à base d'URL + %{LA-U:REQUEST_FILENAME} pour déterminer la valeur finale de REQUEST_FILENAME.

  2. - %{ENV:variable}, où variable peut - correspondre à une variable d'environnement quelconque.
  3. + %{ENV:variable}, où variable peut + correspondre à une variable d'environnement quelconque.
  4. - %{ENV:variable} est aussi disponible, où - variable peut correspondre à toute variable - d'environnement. Peut être consulté via des structures internes + %{ENV:variable} est aussi disponible, où + variable peut correspondre à toute variable + d'environnement. Peut être consulté via des structures internes d'Apache httpd et (si on ne les trouve pas ici) via la fonction - getenv() à partir du processus du serveur Apache + getenv() à partir du processus du serveur Apache httpd.
  5. -
  6. Que mod_ssl soit chargé ou non, on peut - utiliser %{SSL:variable}, où variable - peut être remplacé par le nom d'une +
  7. Que mod_ssl soit chargé ou non, on peut + utiliser %{SSL:variable}, où variable + peut être remplacé par le nom d'une variable d'environnement SSL . Si mod_ssl n'est pas - chargé, cette variable contiendra toujours une chaîne vide. + chargé, cette variable contiendra toujours une chaîne vide. Exemple : %{SSL:SSL_CIPHER_USEKEYSIZE} pourra contenir la valeur 128. Ces variables sont - disponibles même si l'option StdEnvVars de la + disponibles même si l'option StdEnvVars de la directive SSLOptions n'a - pas été définie.
  8. + pas été définie.
  9. - On peut utiliser %{HTTP:en-tête}, où - en-tête peut correspondre à tout nom d'en-tête MIME - HTTP, pour extraire la valeur d'un en-tête envoyé dans la - requête HTTP. Par exemple, %{HTTP:Proxy-Connection} - contiendra la valeur de l'en-tête HTTP + On peut utiliser %{HTTP:en-tête}, où + en-tête peut correspondre à tout nom d'en-tête MIME + HTTP, pour extraire la valeur d'un en-tête envoyé dans la + requête HTTP. Par exemple, %{HTTP:Proxy-Connection} + contiendra la valeur de l'en-tête HTTP "Proxy-Connection:". - Si on utilise un en-tête HTTP - dans une condition, et si cette condition est évaluée à - vrai pour la requête, cet en-tête sera ajouté à l'en-tête Vary de - la réponse. Il ne le sera pas si la condition est évaluée à - faux. L'ajout de l'en-tête HTTP à l'en-tête Vary - est nécessaire à une mise en cache appropriée. -

    Il faut garder à l'esprit que les conditions suivent une + Si on utilise un en-tête HTTP + dans une condition, et si cette condition est évaluée à + vrai pour la requête, cet en-tête sera ajouté à l'en-tête Vary de + la réponse. Il ne le sera pas si la condition est évaluée à + faux. L'ajout de l'en-tête HTTP à l'en-tête Vary + est nécessaire à une mise en cache appropriée. +

    Il faut garder à l'esprit que les conditions suivent une logique de cout-circuit si le drapeau - 'ornext|OR' est utilisé, et que de - ce fait, certaines d'entre elles ne seront pas évaluées.

    + 'ornext|OR' est utilisé, et que de + ce fait, certaines d'entre elles ne seront pas évaluées.

  10. -
  11. A des fins de référence avant, on peut utiliser, +
  12. A des fins de référence avant, on peut utiliser, %{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 - à ce stade du traitement, mais qui sera définie au - cours d'une phase ultérieure. -

    Par exemple, pour effectuer une réécriture dépendant de la + 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 + à ce stade du traitement, mais qui sera définie au + cours d'une phase ultérieure. +

    Par exemple, pour effectuer une réécriture dépendant de la variable REMOTE_USER dans le contexte du serveur principal (fichier httpd.conf), vous devez utiliser - %{LA-U:REMOTE_USER} - cette variable est définie - par la phase d'autorisation qui intervient après la - phase de traduction d'URL (pendant laquelle mod_rewrite opère).

    -

    Par contre, comme mod_rewrite implémente son contexte de - répertoire (fichier .htaccess) via la phase Fixup + %{LA-U:REMOTE_USER} - cette variable est définie + par la phase d'autorisation qui intervient après la + phase de traduction d'URL (pendant laquelle mod_rewrite opère).

    +

    Par contre, comme mod_rewrite implémente son contexte de + répertoire (fichier .htaccess) via la phase Fixup de l'API, et comme la phase d'autorisation intervient - avant cette dernière, vous pouvez vous contenter + avant cette dernière, vous pouvez vous contenter d'utiliser %{REMOTE_USER} dans ce contexte.

  13. - %{LA-F:variable} peut être utilisée pour effectuer - une sous-requête interne (basée sur le nom de fichier), afin de - déterminer la valeur finale de variable. La plupart du - temps, elle est identique à LA-U (voir ci-dessus).
  14. + %{LA-F:variable} peut être utilisée pour effectuer + une sous-requête interne (basée sur le nom de fichier), afin de + déterminer la valeur finale de variable. La plupart du + temps, elle est identique à LA-U (voir ci-dessus).

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 - évaluée, puis comparée à + rationnelle qui est appliquée à l'instance actuelle de + chaîne_de_test. chaîne_de_test est d'abord + évaluée, puis comparée à 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 : + disposez des syntaxes supplémentaires suivantes pour effectuer + d'autres tests utiles sur chaîne_de_test :

    -
  1. Vous pouvez préfixer l'expression avec un caractère - '!' (point d'exclamation) pour inverser le résultat +
  2. Vous pouvez préfixer l'expression avec un caractère + '!' (point d'exclamation) pour inverser le résultat de la condition, quelle que soit l'expression de - comparaison utilisée.
  3. + comparaison utilisée.
  4. Vous pouvez effectuer des comparaisons lexicographiques de - chaînes : - -
      -
    • '<expression' (infé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 inférieure au sens - lexicographique à l'expression.
    • - -
    • '>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 - lexicographique à l'expression.
    • - -
    • '=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 - lexicographique à l'expression (les deux chaînes - sont exactement identiques, caractère pour caractère). Si + chaînes : + +
      +
      <expression
      +
      infé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 inférieure au sens + lexicographique à l'expression.
      + +
      >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 + lexicographique à l'expression.
      + +
      =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 + 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.
    • - -
    • '<=expression de comparaison' (inférieur ou égal à - au sens lexicographique)
      - 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 - sont identiques, caractère pour caractère).
    • - -
    • '>=expression de comparaison' - (supérieur ou égal à au sens lexicographique)
      - 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 + chaîne_de_test est comparée à la + chaîne vide. + +
      <=expression de comparaison
      +
      inférieur ou égal à au sens lexicographique
      + 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 + sont identiques, caractère pour caractère).
      + +
      >=expression de comparaison
      +
      supérieur ou égal à au sens lexicographique
      + 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 - sont identiques, caractère pour caractère).
    • -
  5. + égale à expression_de_comparaison (les deux chaînes + sont identiques, caractère pour caractère). + +
  6. Vous pouvez effectuer des comparaisons d'entiers : -
      +
      -
    • '-eq' (est numériquement égal à)
      - La chaîne_de_test est considérée comme un entier, - et est comparée numériquement à l'expression de +
      -eq
      +
      est numériquement égal à
      + La chaîne_de_test est considérée comme un entier, + et est comparée numériquement à l'expression de comparaison. Vrai si les deux expressions sont - numériquement égales.
    • - -
    • '-ge' (est numériquement supérieur ou - égal à)
      - La chaîne_de_test est considérée comme un entier, - et est comparée numériquement à l'expression de - comparaison. Vrai si chaîne_de_test est - numériquement - supérieure ou égale à expression_de_comparaison.
    • - -
    • '-gt' (est numériquement supérieur à)
      - La chaîne_de_test est considérée comme un entier, - et est comparée numériquement à l'expression de - comparaison. Vrai si chaîne_de_test est - numériquement - supérieure à expression_de_comparaison.
    • - -
    • '-le' (est numériquement inférieur ou - égal à)
      - La chaîne_de_test est considérée comme un entier, - et est comparée numériquement à l'expression de - comparaison. Vrai si chaîne_de_test est - numériquement - inférieure ou égale à expression_de_comparaison. - Attention à la confusion avec le drapeau -l + numériquement égales. + +
      -ge
      +
      est numériquement supérieur ou égal à
      + La chaîne_de_test est considérée comme un entier, + et est comparée numériquement à l'expression de + comparaison. Vrai si chaîne_de_test est + numériquement supérieure ou égale à + expression_de_comparaison.
      + +
      -gt
      +
      est numériquement supérieur à
      + La chaîne_de_test est considérée comme un entier, + et est comparée numériquement à l'expression de + comparaison. Vrai si chaîne_de_test est + numériquement + supérieure à expression_de_comparaison.
      + +
      -le
      +
      est numériquement inférieur ou égal à
      + La chaîne_de_test est considérée comme un entier, + et est comparée numériquement à l'expression de + comparaison. Vrai si chaîne_de_test est + numériquement + inférieure ou égale à expression_de_comparaison. + Attention à la confusion avec le drapeau -l en utilisant la variante the -L ou - -h.
    • - -
    • '-lt' (est numériquement inférieur à)
      - La chaîne_de_test est considérée comme un entier, - et est comparée numériquement à l'expression de - comparaison. Vrai si chaîne_de_test est - numériquement - inférieure à expression_de_comparaison. - Attention à la confusion avec le drapeau -l + -h. + +
      -lt
      +
      est numériquement inférieur à
      + La chaîne_de_test est considérée comme un entier, + et est comparée numériquement à l'expression de + comparaison. Vrai si chaîne_de_test est + numériquement + inférieure à expression_de_comparaison. + Attention à la confusion avec le drapeau -l en utilisant la variante the -L ou - -h.
    • + -h. -
    +
  7. -
  8. Vous pouvez effectuer différents tests sur les attributs de +
  9. Vous pouvez effectuer différents tests sur les attributs de fichier : -
      - -
    • '-d' (est un répertoire - - directory)
      - Traite chaîne_de_test comme un chemin et vérifie - s'il existe ou pas, et s'il s'agit d'un répertoire.
    • - -
    • '-f' (est un - fichier régulier)
      - Traite chaîne_de_test comme un chemin et vérifie - s'il existe ou pas, et s'il s'agit d'un fichier régulier.
    • - -
    • '-F' (test de l'existence d'un fichier - via une sous-requête)
      - Vérifie si chaîne_de_test est un fichier valide, - accessible à travers tous les contrôles d'accès du serveur - actuellement configurés pour ce chemin. C'est une - sous-requête interne qui effectue cette vérification - à - utiliser avec précautions car les performances du serveur - peuvent s'en trouver affectées !
    • - -
    • '-H' (est un lien symbolique, selon la - convention bash)
      - Voir -l.
    • - -
    • '-l' (est un lien symbolique)
      - Considère la chaîne_de_test comme un chemin et - vérifie son existence et si elle est un lien symbolique. On +
      + +
      -d
      +
      est un répertoire
      + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un répertoire.
      + +
      -f
      +
      est un fichier régulier
      + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un fichier régulier.
      + +
      -F
      +
      test de l'existence d'un fichier via une sous-requête
      + Vérifie si chaîne_de_test est un fichier valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !
      + +
      -H
      +
      est un lien symbolique, selon la convention bash
      + Voir -l.
      + +
      -l
      +
      est un lien symbolique
      + Considère la chaîne_de_test comme un chemin et + vérifie son existence et si elle est un lien symbolique. On peut aussi utiliser la convention bash -L ou -h lorsqu'il y a risque de confusion - avec les tests -lt ou -le.
    • - -
    • '-L' (est un lien symbolique, selon la - convention bash)
      - Voir -l.
    • - -
    • '-s' (est un fichier régulier d'une - certaine taille)
      - Considère la chaîne_de_test comme un chemin et - vérifie son existence et si elle est un fichier régulier - d'une taille supérieure à zéro.
    • - -
    • '-U' (test de l'existence d'une - URL via une sous-requête)
      - Vérifie si chaîne_de_test est une URL valide, - accessible à travers tous les contrôles d'accès du serveur - actuellement configurés pour ce chemin. C'est une - sous-requête interne qui effectue cette vérification - à - utiliser avec précautions car les performances du serveur - peuvent s'en trouver affectées !

      + avec les tests -lt ou -le. + +
      -L
      +
      est un lien symbolique, selon la convention bash
      + Voir -l.
      + +
      -s
      +
      est un fichier régulier d'une certaine taille
      + Considère la chaîne_de_test comme un chemin et + vérifie son existence et si elle est un fichier régulier + d'une taille supérieure à zéro.
      + +
      -U
      +

      test de l'existence d'une + URL via une sous-requête
      + Vérifie si chaîne_de_test est une URL valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !

      Ce drapeau ne renvoie que des informations - concernant le contrôle d'accès, l'authentification et + concernant le contrôle d'accès, l'authentification et l'autorisation. Il ne renvoie pas d'informations - concernant le code d'état que le gestionnaire configuré - (static file, CGI, proxy, etc...) aurait, quant à lui, - retourné.

    • + concernant le code d'état que le gestionnaire configuré + (static file, CGI, proxy, etc...) aurait, quant à lui, + retourné.

      -
    • '-x' (a l'attribut d'exécution positionné)
      - Considère la chaîne_de_test comme un chemin et - vérifie son existence et si elle a son attribut d'exécution - positionné. Ce positionnement est déterminé en fonction de - l'OS sous-jacent.
    • +
      -x
      +
      a l'attribut d'exécution positionné
      + Considère la chaîne_de_test comme un chemin et + vérifie son existence et si elle a son attribut d'exécution + positionné. Ce positionnement est déterminé en fonction de + l'OS sous-jacent.
      -
    + + + Par exemple: + + +RewriteCond /var/www/%{REQUEST_URI} !-f +RewriteRule ^(.+) /other/archive/$1 [R] +
  10. -

    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 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.

    Dans l'exemple ci-dessous, on utilise -strmatch - pour comparer le REFERER avec le nom d'hôte du - site afin de bloquer le hotlinking (référencement direct) - non désiré. + pour comparer le REFERER avec le nom d'hôte du + site afin de bloquer le hotlinking (référencement direct) + non désiré.

    @@ -1019,51 +1034,51 @@ la réécriture soit effectuée
  11. -
  12. Vous pouvez aussi définir certains drapeaux pour +
  13. Vous pouvez aussi définir certains drapeaux pour l'expression_de_comparaison en ajoutant ces [drapeaux] - comme troisième argument de la directive - RewriteCond, où drapeaux est un - sous-ensemble séparé par des virgules des drapeaux suivants : + comme troisième argument de la directive + RewriteCond, où drapeaux est un + sous-ensemble séparé par des virgules des drapeaux suivants :
    • 'nocase|NC' (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 + 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 + 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 + vérification par sous-requêtes ou sur le système de fichiers.
    • 'ornext|OR' (ou condition suivante)
      - Permet de chaîner les conditions de règles avec un OU au + 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... +RewriteRule ...règles concernant tous ces hôtes... Sans ce drapeau, les paires - condition/règle devraient être écrites trois fois. + condition/règle devraient être écrites trois fois.
    • 'novary|NV' (no vary)
      - Si la condition contient un en-tête HTTP, ce drapeau empêche - ce dernier d'être ajouté à l'en-tête Vary de la réponse.
      + Si la condition contient un en-tête HTTP, ce drapeau empêche + ce dernier d'être ajouté à l'en-tête Vary de la réponse.
      L'utilisation de ce drapeau peut provoquer une mise en cache - incorrecte de la réponse, si la représentation de cette réponse - varie avec la valeur de l'en-tête considéré. Ce drapeau ne - devrait donc être utilisé que si l'on maîtrise parfaitement le - fonctionnement de l'en-tête Vary. + incorrecte de la réponse, si la représentation de cette réponse + varie avec la valeur de l'en-tête considéré. Ce drapeau ne + devrait donc être utilisé que si l'on maîtrise parfaitement le + fonctionnement de l'en-tête Vary.
  14. @@ -1071,8 +1086,8 @@ RewriteRule ...règles concernant tous ces hôtes...

    Exemple :

    -

    Pour réécrire la page d'accueil d'un site en fonction de - l'en-tête ``User-Agent:'' de la requête, vous +

    Pour réécrire la page d'accueil d'un site en fonction de + l'en-tête ``User-Agent:'' de la requête, vous pouvez utiliser ce qui suit :

    @@ -1087,7 +1102,7 @@ RewriteRule "^/$" "/homepage.std.html" [L] 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 + sera renvoyée. Dans le cas contraire, ce sera la page d'accueil standard.

    @@ -1096,258 +1111,267 @@ RewriteRule "^/$" "/homepage.std.html" [L] RewriteRule -Définit les règles pour le moteur de réécriture +Définit les règles pour le moteur de réécriture RewriteRule - Modèle Substitution [drapeaux] + Modèle Substitution [drapeaux] server configvirtual host directory.htaccess FileInfo

    La directive RewriteRule est le - véritable cheval de trait de la réécriture. La directive peut - apparaître plusieurs fois, chaque instance définissant une - règle de réécriture particulière. L'ordre dans lequel ces règles - sont définies est important - il s'agit de l'ordre dans lequel - les règles seront appliquées au cours du processus de - réécriture.

    - -

    Modèle est une + véritable cheval de trait de la réécriture. La directive peut + apparaître plusieurs fois, chaque instance définissant une + règle de réécriture particulière. L'ordre dans lequel ces règles + sont définies est important - il s'agit de l'ordre dans lequel + les règles seront appliquées au cours du processus de + réécriture.

    + +

    Modèle est une expression rationnelle - compatible perl. Dans la première règle de réécriture, - l'expression est comparée au (%-decoded) + 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, ou, dans un contexte de répertoire (voir - ci-dessous), au chemin de l'URL relativement à ce contexte de - répertoire. Les expressions suivantes sont comparées à la sortie de - la dernière règle de réécriture qui + requête, ou, dans un contexte de répertoire (voir + ci-dessous), au chemin de l'URL relativement à ce contexte de + répertoire. 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> +<a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est comparé ?</a>

    Dans un contexte de serveur virtuel VirtualHost, le modèle est tout - d'abord comparé à la portion de l'URL située entre le nom d'hôte - éventuellement accompagné du port, et la chaîne de paramètres (par + module="core">VirtualHost, le modèle est tout + d'abord comparé à la portion de l'URL située entre le nom d'hôte + éventuellement accompagné du port, et la chaîne de paramètres (par exemple "/app1/index.html").

    -

    Dans les contextes de répertoire Dans les contextes de répertoire 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 le serveur vers la règle RewriteRule (par + 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 le serveur vers la règle RewriteRule (par exemple "app1/index.html" ou - "index.html" selon l'endroit où les directives sont définies).

    + "index.html" selon l'endroit où les directives sont définies).

    Si vous souhaitez faire une comparaison sur le nom - d'hôte, le port, ou la chaîne de requête, utilisez une + d'hôte, le port, ou la chaîne de requête, utilisez une directive RewriteCond comportant respectivement les variables %{HTTP_HOST}, %{SERVER_PORT}, ou %{QUERY_STRING}.

    + +

    Dans tous les cas, il faut garder à l'esprit que les expressions + rationnelles permettent de rechercher des correspondances de sous-chaînes. + En d'autres termes, l'expression rationnelle n'a pas besoin de correspondre à + l'ensemble de la chaîne, mais seulement à la partie que vous souhaitez + voir correspondre. Ainsi, l'utilisation de l'expression . est + souvent suffisante et préférable à .*, et l'expression + abc n'est pas identique à l'expression + ^abc$.

    -Réécritures dans un contexte de répertoire +Réécritures dans un contexte de répertoire
      -
    • L'utilisation du moteur de réécriture dans les +
    • L'utilisation du moteur de réécriture dans les fichiers .htaccess et les sections Directory est un peu plus complexe.
    • -
    • Pour activer le moteur de réécriture dans ces contextes, vous devez -définir "RewriteEngine On" et -"Options FollowSymLinks". Si l'administrateur a désactivé -la possibilité de modifier l'option FollowSymLinks au -niveau du répertoire d'un utilisateur, vous ne pouvez pas utiliser le -moteur de réécriture. Cette restriction a été instaurée à des fins de -sécurité.
    • - -
    • Lorsqu'on utilise le moteur de réécriture dans un fichier -.htaccess, le chemin de base du répertoire courant (qui est -toujours le même pour ce même répertoire) est automatiquement -supprimé au cours de la comparaison avec le modèle de la règle -de réécriture, et automatiquement ajouté lorsqu'une -substitution relative (ne débutant pas par un slash ou un nom de -protocole) arrive à la fin d'un jeu de règles. Voir la directive +
    • Pour activer le moteur de réécriture dans ces contextes, vous devez +définir "RewriteEngine On" et +"Options FollowSymLinks". Si l'administrateur a désactivé +la possibilité de modifier l'option FollowSymLinks au +niveau du répertoire d'un utilisateur, vous ne pouvez pas utiliser le +moteur de réécriture. Cette restriction a été instaurée à des fins de +sécurité.
    • + +
    • Lorsqu'on utilise le moteur de réécriture dans un fichier +.htaccess, le chemin de base du répertoire courant (qui est +toujours le même pour ce même répertoire) est automatiquement +supprimé au cours de la comparaison avec le modèle de la règle +de réécriture, et automatiquement ajouté lorsqu'une +substitution relative (ne débutant pas par un slash ou un nom de +protocole) arrive à la fin d'un jeu de règles. Voir la directive RewriteBase pour plus de -détails à propos de l'ajout du préfixe après les substitutions +détails à propos de l'ajout du préfixe après les substitutions relatives.
    • Si vous souhaitez effectuer une comparaison en prenant en compte -l'intégralité du -chemin de l'URL dans un contexte de répertoire (htaccess), vous devez +l'intégralité du +chemin de l'URL dans un contexte de répertoire (htaccess), vous devez utiliser la variable %{REQUEST_URI} dans la directive RewriteCond.
    • -
    • Le prefixe supprimé se termine toujours par un slash, ce qui -signifie que la comparaison s'effectue avec une chaîne qui ne comporte -jamais de slash de début. Ainsi, un modèle contenant -^/ ne correspondra jamais dans un contexte de répertoire.
    • +
    • Le prefixe supprimé se termine toujours par un slash, ce qui +signifie que la comparaison s'effectue avec une chaîne qui ne comporte +jamais de slash de début. Ainsi, un modèle contenant +^/ ne correspondra jamais dans un contexte de répertoire.
    • -
    • Bien que les règles de réécriture soient permises du point de vue de +
    • Bien que les règles de réécriture soient permises du point de vue de la syntaxe dans les sections Location et 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 +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.
    -

    Pour quelques conseils à propos des Pour quelques conseils à propos des expressions rationnelles, voir le document Introduction à + href="../rewrite/intro.html#regex">Introduction à mod_rewrite.

    -

    Dans mod_rewrite, on peut aussi utiliser le caractère NON - ('!') comme préfixe de modèle. Ceci vous permet - d'inverser la signification d'un modèle, soit pour dire - ``si l'URL considérée ne correspond PAS à - ce modèle''. Le caractère NON peut donc être utilisé à +

    Dans mod_rewrite, on peut aussi utiliser le caractère NON + ('!') comme préfixe de modèle. Ceci vous permet + d'inverser la signification d'un modèle, soit pour dire + ``si l'URL considérée ne correspond PAS à + ce modèle''. Le caractère NON peut donc être utilisé à titre exceptionnel, lorsqu'il est plus simple d'effectuer une - comparaison avec le modèle inversé, ou dans la dernière règle - par défaut.

    + comparaison avec le modèle inversé, ou dans la dernière règle + par défaut.

    Note -Si vous utilisez le caractère NON pour inverser la signification d'un -modèle, vous ne pouvez pas inclure de parties génériques groupées dans -le modèle. Ceci est dû au fait que, lorsque le modèle ne correspond -pas (autrement dit, sa négation correspond), les groupes sont vides. -Ainsi, si vous utilisez des modèles inversés, vous ne pouvez -pas vous référer aux groupes par $N dans la chaîne de +Si vous utilisez le caractère NON pour inverser la signification d'un +modèle, vous ne pouvez pas inclure de parties génériques groupées dans +le modèle. Ceci est dû au fait que, lorsque le modèle ne correspond +pas (autrement dit, sa négation correspond), les groupes sont vides. +Ainsi, si vous utilisez des modèles inversés, vous ne pouvez +pas vous référer aux groupes par $N dans la chaîne de substitution ! -

    Dans une règle de réécriture, - Substitution est la chaîne - de caractères qui remplace le chemin de l'URL original qui - correspondait au Modèle. Substitution peut - être :

    +

    Dans une règle de réécriture, + Substitution est la chaîne + de caractères qui remplace le chemin de l'URL original qui + correspondait au Modèle. Substitution peut + être :

    -
    un chemin du système de fichiers
    +
    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. 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 +
    Il indique alors la localisation dans le système de + 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 + composant du chemin dans la substitution existe dans le système de fichiers.
    chemin d'URL
    -
    Un chemin relatif à la valeur de Un chemin relatif à la valeur de DocumentRoot vers la ressource qui - doit être servie. Notez que mod_rewrite - essaie de deviner si vous avez spécifié un chemin du système - de fichiers ou un chemin d'URL en vérifiant si la première - partie du chemin existe à la racine du système de fichiers. - Par exemple, si vous avez spécifié comme chaîne de + doit être servie. Notez que mod_rewrite + essaie de deviner si vous avez spécifié un chemin du système + de fichiers ou un chemin d'URL en vérifiant si la première + partie du chemin existe à la racine du système de fichiers. + Par exemple, si vous avez spécifié comme chaîne de 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 (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 + 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 (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 Alias) soient appliquées au - chemin d'URL résultant, utilisez le drapeau [PT] - comme décrit ci-dessous.
    + module="mod_alias">Alias) soient appliquées au + chemin d'URL résultant, utilisez le drapeau [PT] + comme décrit ci-dessous.
    URL absolue
    -
    Si une URL absolue est spécifiée, - mod_rewrite vérifie si le nom d'hôte - correspond à celui de l'hôte local. Si c'est le cas, le - protocole et le nom d'hôte sont supprimés, et ce qui reste est - traité comme un chemin d'URL. Dans le cas contraire, une - redirection externe vers l'URL indiquée est effectuée. Pour - forcer une redirection externe vers l'hôte local, voir le +
    Si une URL absolue est spécifiée, + mod_rewrite vérifie si le nom d'hôte + correspond à celui de l'hôte local. Si c'est le cas, le + protocole et le nom d'hôte sont supprimés, et ce qui reste est + traité comme un chemin d'URL. Dans le cas contraire, une + redirection externe vers l'URL indiquée est effectuée. Pour + forcer une redirection externe vers l'hôte local, voir le drapeau [R] ci-dessous.
    - (tiret)
    -
    Un tiret indique qu'aucune substitution ne doit être - effectuée (le chemin considéré est transmis sans changement). - Ceci est utile quand un drapeau doit être appliqué sans +
    Un tiret indique qu'aucune substitution ne doit être + effectuée (le chemin considéré est transmis sans changement). + Ceci est utile quand un drapeau doit être appliqué sans modifier le chemin (voir ci-dessous).
    -

    En plus du texte, la chaîne Substition peut +

    En plus du texte, la chaîne Substition peut comporter :

      -
    1. des références arrières ($N) vers le modèle +
    2. des références arrières ($N) vers le modèle d'une directive RewriteRule
    3. -
    4. des références arrières (%N) vers le dernier - modèle d'une directive RewriteCond qui correspondait
    5. +
    6. des références arrières (%N) vers le dernier + modèle d'une directive RewriteCond qui correspondait
    7. -
    8. des variables du serveur comme dans les chaînes de test de - condition d'une règle (%{VARNAME})
    9. +
    10. des variables du serveur comme dans les chaînes de test de + condition d'une règle (%{VARNAME})
    11. des appels de fonctions de comparaison - (${nom correspondance:clé|défaut})
    12. + (${nom correspondance:clé|défaut})
    -

    Les références arrières sont des identificateurs de la forme +

    Les références arrières sont des identificateurs de la forme $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 + 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 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 - variables sont évaluées dans l'ordre ci-dessus.

    + section de laquelle elles sont décrites. Ces trois types de + variables sont évaluées dans l'ordre ci-dessus.

    -

    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. Le chemin de l'URL ou du système de fichier (voir +

    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. 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 - processus de réécriture se poursuit jusqu'à ce que toutes les - règles aient été appliquées, ou qu'il soit explicitement stoppé + comparé ?) est intégralement + remplacée par la chaîne de Substitution et le + processus de réécriture se poursuit jusqu'à ce que toutes les + règles aient été appliquées, ou qu'il soit explicitement stoppé par un drapeau L, - ou par un autre drapeau qui implique un arrêt immédiat, comme + ou par un autre drapeau qui implique un arrêt immédiat, comme END ou F.

    - Modifier la chaîne de requête -

    Par défaut, la chaîne de requête est transmise sans - modification. Vous pouvez cependant créer dans la chaîne de - substitution des URLs dont une partie constitue une chaîne de - requête. Pour cela, ajoutez simplement un point d'interrogation - dans la chaîne de substitution pour indiquer que le texte qui - suit doit être réinjecté dans la chaîne de requête. Pour - supprimer une chaîne de requête, terminez simplement la chaîne de + Modifier la chaîne de requête +

    Par défaut, la chaîne de requête est transmise sans + modification. Vous pouvez cependant créer dans la chaîne de + substitution des URLs dont une partie constitue une chaîne de + requête. Pour cela, ajoutez simplement un point d'interrogation + dans la chaîne de substitution pour indiquer que le texte qui + suit doit être réinjecté dans la chaîne de requête. Pour + supprimer une chaîne de requête, terminez simplement la chaîne de substitution par un point d'interrogation. Pour combiner les - nouvelles chaînes de requête avec les anciennes, utilisez le + nouvelles chaînes de requête avec les anciennes, utilisez le drapeau [QSA].

    -

    En outre, vous pouvez spécifier des actions spéciales à effectuer en ajoutant +

    En outre, vous pouvez spécifier des actions spéciales à effectuer en ajoutant des [drapeaux] - comme troisième argument de la directive - RewriteRule. Séparés par des virgules au sein d'une - liste encadrée par des crochets, les drapeaux peuvent - être choisis dans la table suivante. Vous trouverez plus de - détails, et des exemples pour chaque drapeau dans le document à propos des drapeaux de - réécriture.

    + comme troisième argument de la directive + RewriteRule. Séparés par des virgules au sein d'une + liste encadrée par des crochets, les drapeaux peuvent + être choisis dans la table suivante. Vous trouverez plus de + détails, et des exemples pour chaque drapeau dans le document à propos des drapeaux de + réécriture.

    @@ -1355,164 +1379,164 @@ substitution ! - + href="../rewrite/flags.html#flag_b">détails ... - - + - - - + href="../rewrite/flags.html#flag_end">détails ... - + annule la définition de la variable VAR.détails ... - + + href="../rewrite/flags.html#flag_g">détails ... - + href="../rewrite/flags.html#flag_h">détails ... - + href="../rewrite/flags.html#flag_l">détails ... - - + - + - + - + href="../rewrite/flags.html#flag_pt">détails ... - + - - + + spécifié au fichier cible. détails ...
    Drapeaux et syntaxe
    BEchappe les caractères non-alphanumériques - dans les références arrières avant + Echappe les caractères non-alphanumériques + dans les références arrières avant d'appliquer la transformation. détails ...
    backrefnoplus|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 Avec 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|CLa 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. détails ...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. détails ...
    cookie|CO=NAME:VALDéfinit un cookie au niveau du navigateur client. La syntaxe - complète est : + Définit un cookie au niveau du navigateur client. La syntaxe + complète est : CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] details ... - détails ... + détails ...
    discardpath|DPISupprime la partie PATH_INFO de l'URI réécrit. détails + Supprime la partie PATH_INFO de l'URI réécrit. détails ...
    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 + Stoppe 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 + Définit la variable d'environnement VAR (à la valeur VAL si elle est fournie). La variante !VAR - annule la définition de la variable VAR.détails ...
    forbidden|FRenvoie une réponse 403 FORBIDDEN au navigateur client. - détails ...Renvoie une réponse 403 FORBIDDEN au navigateur client. + détails ...
    gone|G Renvoie un message d'erreur 410 GONE au navigateur client. détails ...
    Handler|H=Gestionnaire de contenuL'URI résultant est envoyé au Gestionnaire de + L'URI résultant est envoyé au Gestionnaire de contenu pour traitement. détails ...
    last|LArrête le processus de réécriture immédiatement et n'applique - plus aucune règle. Prêtez une attention particulière aux mises - en garde concernant les contextes de niveau répertoire et + Arrête le processus de réécriture immédiatement et n'applique + plus aucune règle. Prêtez une attention particulière aux mises + en garde concernant les contextes de niveau répertoire et .htaccess (voir aussi le drapeau END). détails ...
    next|NRéexécute le processus de réécriture à partir de la première - règle, en utilisant le résultat du jeu de règles, sous réserve - qu'il y ait un point de départ. détails + Réexécute le processus de réécriture à partir de la première + règle, en utilisant le résultat du jeu de règles, sous réserve + qu'il y ait un point de départ. détails ...
    nocase|NCRend la comparaison entre modèles insensible à la casse. - détails ...Rend la comparaison entre modèles insensible à la casse. + détails ...
    noescape|NEEmpêche mod_rewrite d'effectuer un échappement hexadécimal - des caractères spéciaux dans le résultat de la réécriture. détails ...Empêche mod_rewrite d'effectuer un échappement hexadécimal + des caractères spéciaux dans le résultat de la réécriture. détails ...
    nosubreq|NSLa règle est sautée si la requête courante est une - sous-requête interne. détails ...La règle est sautée si la requête courante est une + sous-requête interne. détails ...
    proxy|P Force l'envoi en interne de l'URL de substitution en tant - que requête mandataire. détails + que requête mandataire. détails ...
    passthrough|PTL'URI résultant est repassé au moteur de mise en - correspondance des URLs pour y être traité par d'autres + L'URI résultant est repassé au moteur de mise en + correspondance des URLs pour y être traité par d'autres traducteurs URI-vers-nom de fichier, comme Alias ou Redirect. détails ...
    qsappend|QSAAjoute 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 ...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 ...
    qsdiscard|QSDSupprime toute chaîne de paramètres de l'URI entrant. détails + Supprime toute chaîne de paramètres de l'URI entrant. détails ...
    redirect|R[=code] Force une redirection externe, avec un code de statut HTTP optionnel. détails ... + href="../rewrite/flags.html#flag_r">détails ...
    skip|S=nombreSi la règle courante s'applique, le moteur de réécriture - doit sauter les nombre règles suivantes. détails ...Si la règle courante s'applique, le moteur de réécriture + doit sauter les nombre règles suivantes. détails ...
    type|T=MIME-type Force l'attribution du Type-MIME - spécifié au fichier cible. détails ...
    -Développement du répertoire home -

    Quand la chaîne de substitution commence par quelque chose comme -"/~user" (de manière explicite ou par références arrières), mod_rewrite -développe le répertoire home sans tenir compte de la présence ou de la +Développement du répertoire home +

    Quand la chaîne de substitution commence par quelque chose comme +"/~user" (de manière explicite ou par références arrières), mod_rewrite +développe le répertoire home sans tenir compte de la présence ou de la configuration du module mod_userdir.

    -

    Ce développement n'est pas effectué si le drapeau PT est -utilisé dans la directive RewriteRule

    +

    Ce développement n'est pas effectué si le drapeau PT est +utilisé dans la directive RewriteRule

    Voici toutes les combinaisons de substitution et leurs @@ -1520,29 +1544,29 @@ utilisé dans la directive RewriteRuleDans la configuration au niveau du serveur principal (httpd.conf)
    - pour la requête ``GET + pour la requête ``GET /chemin/infochemin'':

    - - + + - + - + - + @@ -1557,7 +1581,7 @@ utilisé dans la directive RewriteRule - + @@ -1572,7 +1596,7 @@ utilisé dans la directive RewriteRule - + @@ -1592,19 +1616,19 @@ redondant)
    RègleRésultat de la substitutionRègleRésultat de la substitution
    ^/un_chemin(.*) autre_chemin$1invalide, non supportéinvalide, non supporté
    ^/un_chemin(.*) autre_chemin$1 [R]invalide, non supportéinvalide, non supporté
    ^/un_chemin(.*) autre_chemin$1 [P]invalide, non supportéinvalide, non supporté
    ^/un_chemin(.*) /autre_chemin$1 [P]sans objet, non supportésans objet, non supporté
    ^/un_chemin(.*) http://cet_hote/autre_chemin$1 [P]sans objet, non supportésans objet, non supporté
    -

    Dans une configuration de niveau répertoire pour +

    Dans une configuration de niveau répertoire pour /chemin
    (/chemin/physique/vers/chemin/.htacccess, avec RewriteBase "/chemin")
    - pour la requête ``GET + pour la requête ``GET /chemin/chemin-local/infochemin'':

    - - + + @@ -1614,13 +1638,13 @@ redondant) - - + @@ -1630,43 +1654,43 @@ externe - + - + - + - - + + - - + + - - + + - - + - - + +
    RègleRésultat de la substitutionRègleRésultat de la substitution
    ^chemin-local(.*) autre-chemin$1 [R]http://cet-hôte/chemin/autre-chemin/infochemin via redirection +http://cet-hôte/chemin/autre-chemin/infochemin via redirection externe
    ^chemin-local(.*) autre-chemin$1 [P]n'a pas lieu d'être, non supportén'a pas lieu d'être, non supporté
    ^chemin-local(.*) /autre-chemin$1 [R]http://cet-hôte/autre-chemin/infochemin via redirection externehttp://cet-hôte/autre-chemin/infochemin via redirection externe
    ^chemin-local(.*) /autre-chemin$1 [P]n'a pas lieu d'être, non supportén'a pas lieu d'être, non supporté
    ^chemin-local(.*) http://cet-hôte/autre-chemin$1^chemin-local(.*) http://cet-hôte/autre-chemin$1 /autre-chemin/infochemin
    ^chemin-local(.*) http://cet-hôte/autre-chemin$1 [R]http://cet-hôte/autre-chemin/infochemin via redirection externe^chemin-local(.*) http://cet-hôte/autre-chemin$1 [R]http://cet-hôte/autre-chemin/infochemin via redirection externe
    ^chemin-local(.*) http://cet-hôte/autre-chemin$1 [P]n'a pas lieu d'être, non supporté^chemin-local(.*) http://cet-hôte/autre-chemin$1 [P]n'a pas lieu d'être, non supporté
    ^chemin-local(.*) http://autre hôte/autre-chemin$1http://autre hôte/autre-chemin/infochemin via redirection externe^chemin-local(.*) http://autre hôte/autre-chemin$1http://autre hôte/autre-chemin/infochemin via redirection externe
    ^chemin-local(.*) http://autre hôte/autre-chemin$1 [R]http://autre hôte/autre-chemin/infochemin via redirection externe +^chemin-local(.*) http://autre hôte/autre-chemin$1 [R]http://autre hôte/autre-chemin/infochemin via redirection externe (le drapeau [R] est redondant)
    ^chemin-local(.*) http://autre hôte/autre-chemin$1 [P]http://autre hôte/autre-chemin/infochemin via un mandataire interne^chemin-local(.*) http://autre hôte/autre-chemin$1 [P]http://autre hôte/autre-chemin/infochemin via un mandataire interne
    diff --git a/docs/manual/mod/mod_setenvif.xml.fr b/docs/manual/mod/mod_setenvif.xml.fr index 80141de413..ed0b0009d6 100644 --- a/docs/manual/mod/mod_setenvif.xml.fr +++ b/docs/manual/mod/mod_setenvif.xml.fr @@ -26,7 +26,7 @@ mod_setenvif Permet de définir des variables d'environnement en fonction -de caractéristiques de la requête +de certaines caractéristiques de la requête Base mod_setenvif.c setenvif_module @@ -34,9 +34,8 @@ de caractéristiques de la requête

    Le module mod_setenvif vous permet de définir - des variables d'environnement internes en fonction du fait que telle ou telle - caractéristique de la requête correspond ou non aux expressions - rationnelles que vous spécifiez. Ces variables d'environnement + des variables d'environnement internes de manière conditionnelle en fonction + de critères que vous pouvez spécifier. Ces variables d'environnement peuvent être utilisées par d'autres parties du serveur pour prendre des décisions quant aux actions à entreprendre, et pour déterminer si les scripts CGI et les pages SSI doivent pouvoir y accéder.

    @@ -152,7 +151,7 @@ attributs de la requête

    La directive SetEnvIf permet de définir des variables d'environnement en fonction des attributs de la requête. L'attribut spécifié comme premier argument peut - se présenter sous l'une des quatre formes suivantes :

    + se présenter sous l'une des trois formes suivantes :

    1. Un champ d'en-tête de requête HTTP (voir la