From: Lucien Gentis Example: Example:
AllowOverrideList Redirect RedirectMatch
AllowOverrideList CookieTracking CookieName
bin
de votre répertoire
d'installation, afin de déterminer les noms d'hôtes associés aux
adresses IP journalisées.
Enfin, si vous avez des directives Require à base de
+ nom, une recherche de nom d'hôte sera effectuée quelle que soit
+ la définition de la directive HostnameLookups
.
Dans un contexte de serveur virtuel
Comme mentionné précédemment, toutes les règles de
- réécriture sont appliquées à la chaîne de Substitution
- (selon l'ordre dans lequel elles sont définies dans le fichier
- de configuration). L'URL est intégralement
+ Chaque règle de réécriture s'applique au résultat de la règle
+ précédente, selon l'ordre dans lequel elles ont été définies dans
+ le fichier de configuration. L'URI du chemin du fichier (voir
+ 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é
- par un drapeau L
.L
,
+ ou par un autre drapeau qui implique un arrêt immédiat, comme
+ END
ou
+ F
.
Par défaut, la chaîne de requête est transmise sans diff --git a/docs/manual/mod/mod_setenvif.xml.fr b/docs/manual/mod/mod_setenvif.xml.fr index b640433c68..93d38b070e 100644 --- a/docs/manual/mod/mod_setenvif.xml.fr +++ b/docs/manual/mod/mod_setenvif.xml.fr @@ -1,7 +1,7 @@ - + @@ -194,14 +194,6 @@ en compte que si aucune correspondance n'a été trouvée parm caractéristiques de la requête, et si attribut n'a pas été spécifié sous la forme d'une expression rationnelle. -
','
. L'oid doit faire référence à une extension
-sous forme de chaîne.
-Le second argument (regex) est une
SetEnvIf objet_est_une_image xbm XBIT_PROCESSING=1
:
- SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" commentaire-netscape=$1
- :
SetEnvIf ^TS ^[a-z] HAVE_TS
@@ -252,10 +242,6 @@ peuvent se présenter sous les formes suivantes :
www.mon-domaine.example.com
.
- La sixième ligne définit la variable d'environnement
- commentaire-netscape
avec la chaîne trouvée dans le
- champ du certificat client SSL correspondant.
La dernière ligne définit la variable d'environnement
HAVE_TS
si la requête contient un en-tête dont le nom
commence par "TS" et dont la valeur commence par tout caractère du
diff --git a/docs/manual/mpm.xml.fr b/docs/manual/mpm.xml.fr
index e46fb5d812..6aa7b04e1e 100644
--- a/docs/manual/mpm.xml.fr
+++ b/docs/manual/mpm.xml.fr
@@ -78,7 +78,7 @@ que la manière dont ces modules sont utilisés par le serveur HTTP
autres modules Apache httpd. La principale différence réside dans le fait qu'un
et un seul MPM à la fois doit être chargé
lorsque le serveur s'exécute. La liste des
- MPMs disponibles est fournie dans l'indexe des
+ MPMs disponibles est fournie dans l'index des
modules.
Le fonctionnement interne de ce module est très complexe, mais - il est nécessaire de l'expliquer, même à l'utilisateur "standard", - afin d'éviter les erreurs courantes et de pouvoir exploiter toutes - ses fonctionnalités.
-Il faut tout d'abord bien comprendre que le traitement d'une
- requête HTTP par Apache s'effectue en plusieurs phases. L'API
- d'Apache fournit un point d'accroche (hook) pour chacune de ces
- phases. Mod_rewrite utilise deux de ces hooks : le hook de
- conversion des URLs en noms de fichiers qui est utilisé quand la
- requête HTTP a été lue mais avant le démarrage de tout processus
- d'autorisation, et le hook "Fixup" qui est déclenché après les
- phases d'autorisation et après la lecture des fichiers de
- configuration niveau répertoire (.htaccess
), mais
- avant que le gestionnaire de contenu soit activé.
Donc, lorsqu'une requête arrive et quand Apache a déterminé le - serveur correspondant (ou le serveur virtuel), le moteur de - réécriture commence le traitement de toutes les directives de - mod_rewrite de la configuration du serveur principal dans la phase - de conversion URL vers nom de fichier. Une fois ces étapes - franchies, lorsque les repertoires de données finaux ont été - trouvés, les directives de configuration de mod_rewrite au niveau - répertoire sont éxécutées dans la phase Fixup. Dans les deux cas, - mod_rewrite réécrit les URLs soit en nouvelles URLs, soit en noms - de fichiers, bien que la distinction entre les deux ne soit pas - évidente. Cette utilisation de l'API n'était pas sensée s'opérer - de cette manière lorsque l'API fut conçue, mais depuis Apache 1.x, - c'est le seul mode opératoire possible pour mod_rewrite. Afin de - rendre les choses plus claires, souvenez-vous de ces deux points :
- -.htaccess
, bien que ces derniers
- soient traités bien longtemps après que les URLs n'aient été
- traduites en noms de fichiers. Les choses doivent se dérouler
- ainsi car les fichiers .htaccess
résident dans le
- système de fichiers, et le traitement a déjà atteint
- cette étape. Autrement dit, en accord avec les phases de
- l'API, à ce point du traitement, il est trop tard pour
- effectuer des manipulations d'URLs. Pour résoudre ce problème
- d'antériorité, mod_rewrite utilise une astuce : pour effectuer
- une manipulation URL/nom de fichier dans un contexte de
- répertoire, mod_rewrite réécrit tout d'abord le nom de fichier
- en son URL d'origine (ce qui est normalement impossible, mais
- voir ci-dessous l'astuce utilisée par la directive
- RewriteBase
pour y parvenir), puis
- initialise une nouvelle sous-requête interne avec la nouvelle
- URL ; ce qui a pour effet de redémarrer le processus des
- phases de l'API.
-
- Encore une fois, mod_rewrite fait tout ce qui est en son - pouvoir pour rendre la complexité de cette étape complètement - transparente à l'utilisateur, mais vous devez garder ceci à - l'esprit : alors que les manipulations d'URLs dans le contexte - du serveur sont vraiment rapides et efficaces, les réécritures - dans un contexte de répertoire sont lentes et inefficaces à - cause du problème d'antériorité précité. Cependant, c'est la - seule manière dont mod_rewrite peut proposer des manipulations - d'URLs (limitées à une branche du système de fichiers) à - l'utilisateur standard.
-Ne perdez pas de vue ces deux points!
+Le traitement des requêtes par le serveur HTTP Apache se + déroule en plusieurs phases. Au cours de chaque phase, un ou + plusieurs modules peuvent être appelés pour traiter la partie + concernée du cycle de vie de la requête. Les différentes phases + peuvent consister en traduction d'URL en nom de fichier, + authentification, autorisation, gestion de contenu ou journalisation (la + liste n'est pas exhaustive).
+ +mod_rewrite agit dans deux de ces phases (ou accroches - hooks - + comme on les nomme souvent) pour la réécriture des URLs.
+ +Tout d'abord, il utilise le hook traduction URL vers nom de
+ fichier qui intervient après la lecture de la requête HTTP, mais
+ avant le processus d'autorisation. Ensuite, il utilise le hook
+ Fixup, qui intervient après les phases d'autorisation, après la
+ lecture des fichiers de configuration de niveau répertoire (fichiers
+ .htaccess
), mais avant l'appel du gestionnaire de
+ contenu.
Ainsi, lorsqu'une requête arrive et une fois le serveur
+ correspondant ou le serveur virtuel déterminé, le moteur de
+ réécriture commence à traiter toute directive apparaissant dans la
+ configuration de niveau serveur (autrement dit dans le
+ fichier de configuration principal du serveur et les sections
+
Quelques étapes plus loin, une fois les répertoires de données
+ finaux trouvés, les directives de configuration de niveau répertoire
+ (fichiers .htaccess
et sections
Dans tous ces cas, mod_rewrite réécrit le
+ REQUEST_URI
soit vers une nouvelle URL, soit vers un
+ nom de fichier.
Dans un contexte de niveau répertoire (autrement dit dans les
+ fichiers .htaccess
et les sections
+ Directory
), les règles de réécriture s'appliquent après
+ la traduction de l'URL en nom de fichier. C'est pourquoi mod_rewrite
+ retraduit temporairement le nom de fichier en URL en supprimant le
+ chemin de répertoire avant d'appliquer les règles (Reportez-vous à
+ la directive
En conséquence de cette manipulation de l'URL , vous devrez + pensez à confectionner différemment vos règles de réécriture dans un + contexte de niveau répertoire. En particulier, rappelez-vous que le + chemin de répertoire sera absent de l'URL que vos règles de + réécriture verront. Voici quelques exemples qui permettront de + clarifier les choses :
+ +Position de la règle | +Règle | +
---|---|
Section VirtualHost | +RewriteRule ^/images/(.+)\.jpg /images/$1.gif | +
Fichier .htaccess à la racine des documents | +RewriteRule ^images/(.+)\.jpg images/$1.gif | +
Fichier .htaccess dans le répertoire images | +RewriteRule ^(.+)\.jpg $1.gif | +
Pour une étude plus approfondie de la manière dont mod_rewrite + manipule les URLs dans les différents contextes, vous pouvez + consulter les entrées du + journal générées au cours du processus de réécriture.
+