From: Jim Jagielski
+# +# L'exemple suivant montre comment prendre en compte un en-tête +# Accept_Encoding non conforme envoyé par un client. +# +SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding -
+# +# The following directives modify normal HTTP response behavior. +# The first directive disables keepalive for Netscape 2.x and browsers that +# spoof it. There are known problems with these browser implementations. +# The second directive is for Microsoft Internet Explorer 4.0b2 +# which has a broken HTTP/1.1 implementation and does not properly +# support keepalive when it is used on 301 or 302 (redirect) responses. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# The following directive disables HTTP/1.1 responses to browsers which +# are in violation of the HTTP/1.0 spec by not being able to grok a +# basic 1.1 response. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0
sendfile
peut s'avérer incapable de
+ Vous pouvez écraser la définition antérieure d'une directive
None
.
Comme
Note : comme SetHandler l'emporte sur la définition des gestionnaires par défaut, le comportement habituel consistant à traiter les URLs se terminant par un slash (/) comme - des répertoires ou des fichiers index est désactivé.
L'ordre dans lequel s'effectue la recherche quand on utilise le - port physique est le suivant :
-UseCanonicalName On
L'ordre dans lequel s'effectue la recherche du port est le
+ suivant :
+ UseCanonicalName On
Servername
UseCanonicalName Off | DNS
UseCanonicalName Off | DNS
+ Host:
Servername
Avec UseCanonicalPhysicalPort Off
, on reprend
l'ordre ci-dessus en supprimant "Port physique".
Les directives fournies par ce module permettent de manipuler et
- de contrôler les URLs à l'arrivée des requêtes sur le serveur. Les
+ de contrôler les URLs à l'arrivée des requêtes sur le serveur. Les
directives
Les directives
Les alias et redirections apparaissant dans différents contextes
- sont traités comme les autres directives en respectant les règles de fusion standards. Par
- contre, ils sont traités selon une chronologie particulière
- lorsqu'ils apparaissent dans le même contexte (par exemple, dans la
- même section
Premièrement, toutes les redirections sont traitées avant les - alias, et ainsi, une requête qui correspond à une directive +
Premièrement, toutes les redirections sont traitées avant les
+ alias, et ainsi, une requête qui correspond à une directive
Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au - même sous-répertoire, vous devez classer les chemins du plus précis - au moins précis afin que toutes les directives puissent - éventuellement s'appliquer, comme dans l'exemple suivant :
+ même sous-répertoire, vous devez classer les chemins du plus précis + au moins précis afin que toutes les directives puissent + éventuellement s'appliquer, comme dans l'exemple suivant :Si l'ordre des directives était inversé, la directive /foo
serait toujours appliquée avant la directive
+ /foo
serait toujours appliquée avant la directive
/foo/bar
, et cette dernière serait toujours
- ignorée.
/foo/bar
, et cette dernière serait toujours
+ ignorée.
La directive
Une requête pour http://myserver/image/foo.gif
fera
+
Une requête pour http://myserver/image/foo.gif
fera
renvoyer par le serveur le fichier
- /ftp/pub/image/foo.gif
. Seuls les éléments de chemin
- complets sont testés ; ainsi l'alias précédent ne conviendra pas
- pour une requête du style http://myserver/imagefoo.gif
.
+ /ftp/pub/image/foo.gif
. Seuls les éléments de chemin
+ complets sont testés ; ainsi l'alias précédent ne conviendra pas
+ pour une requête du style http://myserver/imagefoo.gif
.
Pour des mises en correspondance plus complexes faisant intervenir
- les expressions rationnelles, veuillez vous reporter à la directive
+ les expressions rationnelles, veuillez vous reporter à la directive
Notez que si vous ajoutez un slash de fin au chemin URL, vous devrez aussi ajouter un slash de fin au chemin de la - requête. Autrement dit, si vous définissez
+ requête. Autrement dit, si vous définissezAlias /icons/ /usr/local/apache/icons/
l'alias précédent ne s'appliquera pas à l'url
- /icons
à cause de l'absence du slash final. Ainsi, si
- le slash final est absent du chemin de l'URL, il doit
- aussi l'être du chemin du fichier.
l'alias précédent ne s'appliquera pas à l'url
+ /icons
.
Notez qu'il pourra s'avérer nécessaire de définir des sections +
Notez qu'il pourra s'avérer nécessaire de définir des sections
En particulier, si vous créez un alias ayant pour cible un - répertoire situé en dehors de l'arborescence de votre site web +
En particulier, si vous créez un alias ayant pour cible un
+ répertoire situé en dehors de l'arborescence de votre site web
Cette directive est identique à la directive /icons
, on peut
+ Par exemple, pour activer le répertoire /icons
, on peut
utiliser :
Toute la puissance des
Il existe une différence subtile entre
En d'autres termes, le remplacement d'^
au début de
- l'expression rationnelle, (.*)$
à sa fin et
- $1
à la fin de la chaîne de remplacement.
^
au début de
+ l'expression rationnelle, (.*)$
à sa fin et
+ $1
à la fin de la chaîne de remplacement.
Par exemple, supposons que nous voulions reformuler cet alias avec AliasMatch :
@@ -233,14 +231,14 @@ en faisant intervenir les expressions rationnellesLe simple remplacement d'Alias par AliasMatch ne produira pas le - même résultat. Ainsi, ce qui suit va rediriger toutes les requêtes + même résultat. Ainsi, ce qui suit va rediriger toutes les requêtes qui contiennent /image/ vers /ftp/pub/image/ :
Voici la directive AliasMatch qui produira le même résultat que +
Voici la directive AliasMatch qui produira le même résultat que la directive Alias ci-dessus :
Bien entendu, il n'y a aucune raison d'utiliser
La directive Redirect permet de faire correspondre une ancienne - URL à une nouvelle en demandant au client d'aller chercher la ressource à + URL à une nouvelle en demandant au client d'aller chercher la ressource à une autre localisation.
-L'ancien chemin URL est un chemin sensible à la casse - (décodé à l'aide de caractères %) commençant par un slash. Les - chemins relatifs ne sont pas autorisés.
+L'ancien chemin URL est un chemin sensible à la casse + (décodé à l'aide de caractères %) commençant par un slash. Les + chemins relatifs ne sont pas autorisés.
La nouvelle URL - peut être une URL absolue commençant par un protocole et un nom - d'hôte, mais on peut aussi utiliser un chemin URL commençant par un - slash, auquel cas le protocole et le nom d'hôte du serveur local - seront ajoutés.
+ peut être une URL absolue commençant par un protocole et un nom + d'hôte, mais on peut aussi utiliser un chemin URL commençant par un + slash, auquel cas le protocole et le nom d'hôte du serveur local + seront ajoutés. -Ensuite, toute requête commençant par chemin URL va +
Ensuite, toute requête commençant par chemin URL va renvoyer une redirection au client vers l'URL cible. Tout - élément de chemin supplémentaire situé en aval du chemin - URL sera ajouté à l'URL cible.
+ élément de chemin supplémentaire situé en aval du chemin + URL sera ajouté à l'URL cible.Si le client effectue une requête pour l'URL
- http://example.com/service/foo.txt
, il lui sera demandé
+
Si le client effectue une requête pour l'URL
+ http://example.com/service/foo.txt
, il lui sera demandé
d'en effectuer une autre pour l'URL
http://foo2.example.com/service/foo.txt
. Ceci concerne
- les requêtes avec paramètres GET
, comme
+ les requêtes avec paramètres GET
, comme
http://example.com/service/foo.pl?q=23&a=42
, qui
- seront redirigées vers
+ seront redirigées vers
http://foo2.example.com/service/foo.pl?q=23&a=42
.
- Notez que les POST
s seront ignorés.
+ Notez que les POST
s seront ignorés.
Seuls les
- éléments de chemin complets sont testés, si bien que l'exemple
- précédent ne s'appliquera pas à l'URL
+ éléments de chemin complets sont testés, si bien que l'exemple
+ précédent ne s'appliquera pas à l'URL
http://example.com/servicefoo.txt
. Pour des mises en
correspondance plus complexes faisant intervenir les expressions
- rationnelles, veuillez vous reporter à la directive
Les directives de redirection ont priorité sur les directives +
Les directives de redirection ont priorité sur les directives Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le fichier de configuration.
Si aucun argument statut n'est spécifié, la +
Si aucun argument statut n'est spécifié, la redirection sera temporaire (statut HTTP 302). Le client est alors - informé que la ressource a été temporairement déplacée. On peut + informé que la ressource a été temporairement déplacée. On peut utiliser l'argument statut pour renvoyer d'autres codes de statut HTTP :
@@ -334,30 +332,30 @@ d'effectuer une autre requête avec une URL différenteOn peut renvoyer d'autres codes de statut en spécifiant le code - de statut numérique comme valeur de l'argument of statut. +
On peut renvoyer d'autres codes de statut en spécifiant le code
+ de statut numérique comme valeur de l'argument of statut.
Si le code de statut est compris entre 300 et 399, l'argument
- URL doit être présent, sinon il ne doit pas être utilisé.
- Notez que le statut doit être connu du code d'Apache (voir la
+ URL doit être présent, sinon il ne doit pas être utilisé.
+ Notez que le statut doit être connu du code d'Apache (voir la
fonction send_error_response
dans
http_protocol.c).
Cette directive est identique à la directive
Les remarques à propos de la différence entre
Cette directive informe le client que la redirection n'est
- que temporaire (statut 302). Son comportement est exactement le même
+ que temporaire (statut 302). Son comportement est exactement le même
que celui de Redirect temp
.
Cette directive informe le client que la redirection est
- permanente (statut 301). Son comportement est exactement le même
+ permanente (statut 301). Son comportement est exactement le même
que celui de Redirect permanent
.
La directive
La directive
Une requête pour http://mon-serveur/cgi-bin/foo
- ferait exécuter par le serveur le script
+
Une requête pour http://mon-serveur/cgi-bin/foo
+ ferait exécuter par le serveur le script
/web/cgi-bin/foo
. Cette configuration est sensiblement
- équivalente à :
Dans ce scénario, tous les fichiers faisant l'objet d'une requête
- dans /cgi-bin/
seront traités par le fichier que vous
- avez spécifié, ce qui vous permet d'utiliser votre propre
+
Dans ce scénario, tous les fichiers faisant l'objet d'une requête
+ dans /cgi-bin/
seront traités par le fichier que vous
+ avez spécifié, ce qui vous permet d'utiliser votre propre
gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
les scripts CGI afin d'ajouter du contenu, ou autre action "maison".
Cette directive est équivalente à la directive /cgi-bin
, on peut utiliser :
Comme dans le cas d'AliasMatch, toute la puissance des
Les remarques à propos de la différence entre
Paramètres de BalancerMember |
---|
Paramètre | Défaut | @@ -1114,9 +1113,9 @@ l'espace d'URLs du serveur local|
---|---|---|
ttl | - | Durée de vie des connexions inactives et des entrées du pool
- de connexions associées en secondes. Une fois cette
- limite atteinte, une connexion ne sera pas réutilisée ; elle
- sera fermée après un délai variable.
+ de connexions associées en secondes. Celles qui n'ont pas été
+ utilisées au bout de ttl secondes seront libérées
+ ou fermées.
|
Paramètres du répartiteur |
---|
Paramètre | Défaut | @@ -1196,27 +1194,6 @@ l'espace d'URLs du serveur local le cas des autres erreurs de worker.|
---|---|---|
nonce | -<auto> | -Le nombre à usage unique de protection utilisé dans la page
- de l'application balancer-manager . Par défaut, la
- protection de la page est assurée par un nombre à usage unique
- automatique à base d'UUID. Si une valeur est précisée, elle sera
- utilisée comme nombre à usage unique. La valeur
- None désactive la vérification du nombre à usage
- unique.
- En plus du nombre à usage unique, la page de l'application
- |
growth | -0 | -Nombre de membres supplémentaires que l'on peut ajouter à ce - répartiteur en plus de ceux définis au niveau de la - configuration. - |
Exemple de configuration d'un répartiteur de charge
La directive .htaccess
,
Cette directive est requise pour les réécritures
dans un contexte de répertoire défini via la directive
-
Si votre chemin URL n'existe pas réellement dans le système de
fichiers, ou ne trouve pas directement sous le répertoire défini
@@ -486,7 +481,6 @@ la réécriture soit effectuée
REQUEST_FILENAME
IS_SUBREQ
HTTPS
- REQUEST_SCHEME
@@ -549,23 +543,11 @@ la réécriture soit effectuée
(Cette variable peut être utilisée sans problème, que
REQUEST_SCHEME
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.
Autres points à connaître ::
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é.
-
[
drapeaux]
@@ -976,73 +939,29 @@ RewriteRule ^/$ /homepage.std.html [L]
la dernière règle de réécriture qui a été appliquée.
Le Modèle est d'abord comparé à la partie + de l'URL après le nom d'hôte et le port, et avant la chaîne de + requête.
+ +Dans un contexte de répertoire, Modèle est comparé à
+ ce qui reste de l'URL après suppression du préfixe qui a conduit
+ Apache httpd à la règle courante (voir la directive ^/
ne
+ correspondra jamais dans un contexte de répertoire.
Dans un contexte de serveur virtuel
Dans les contextes de répertoire
Si vous souhaitez faire une comparaison sur le nom
d'hôte, le port, ou la chaîne de requête, utilisez une
directive %{HTTP_HOST}
, %{SERVER_PORT}
, ou
- %{QUERY_STRING}
.
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é..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
-%{REQUEST_URI}
dans la directive
-^/
ne correspondra jamais dans un contexte de répertoire.%{QUERY_STRING}
. Si vous désirez effectuer une
+ correspondance avec l'ensemble du chemin de l'URL dans un contexte
+ de répertoire (htaccess), utilisez la variable
+ %{REQUEST_URI}
.
Pour quelques conseils à propos des Ce développement n'est pas effectué si le drapeau PT est
utilisé dans la directive Le moteur de réécriture peut être utilisé dans les fichiers .htaccess. Pour activer le moteur de
+réécriture pour ces fichiers, vous devez préciser " Lorsqu'on utilise le moteur de réécriture dans les fichiers
+ Le moteur de réécriture peut aussi être utilisé dans les sections
+ Bien que du point de vue syntaxique, il soit permis de définir des
+règles de réécriture dans les sections Voici toutes les combinaisons de substitution et leurs
diff --git a/docs/manual/rewrite/flags.xml.fr b/docs/manual/rewrite/flags.xml.fr
index 4b349345ab..8aa4bb5a76 100644
--- a/docs/manual/rewrite/flags.xml.fr
+++ b/docs/manual/rewrite/flags.xml.fr
@@ -1,7 +1,7 @@
-
+
@@ -226,7 +226,7 @@ fonctionnement des variables d'environnement. La syntaxe complète pour ce drapeau est : vous pouvez définir la variable d'environnement nommée
La forme permet d'annuler la définition de la variable Les variables d'environnement s'emploient dans différents contextes,
comme les programmes CGI, d'autres directives RewriteRule, ou des
directives CustomLog. Selon la terminologie du serveur HTTP Apache, l'utilisation d'une
- seule adresse IP avec plusieurs ports TCP s'apparente aussi à de
- l'hébergement virtuel basé sur IP. Dans la plupart des cas, les serveurs
+ virtuels à base de nom sont plus appropriés, car ils permettent
+ de partager une seule paire adresse/port entre de nombreux serveurs
+ virtuels. Voir le document Serveurs virtuels à base de noms ou
+ serveurs virtuels à base d'adresse IP pour vous aider à prendre
+ une décision.
+ Il est recommandé d'utiliser une adresse IP plutôt qu'un nom
-
discardpath|DPI
+ discardpathinfo|DPI
Supprime la partie PATH_INFO de l'URI réécrit. détails
...
-
env|E=[!]VAR[:VAL]
+ env|E=VAR[:VAL]
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.VAL si elle est fournie). détails ...
@@ -1339,6 +1257,49 @@ configuration du module RewriteEngine
+On
" et "Options FollowSymLinks
"
+doit être activé. Si votre administrateur a interdit la surcharge de
+FollowSymLinks
pour un répertoire utilisateur, vous ne
+pouvez pas utiliser le moteur de réécriture. Cette restriction est
+nécessaire pour des raisons de sécurité..htaccess
, le préfixe du répertoire (qui est
+toujours le même pour un répertoire donné) est automatiquement
+supprimé pour la comparaison du modèle et automatiquement
+ajouté une fois la substitution effectuée. Cette fonctionnalité
+est nécessaire pour de nombreux cas de réécriture ; sans elle, vous
+seriez obligé de tenir compte du répertoire parent pour la comparaison,
+ce qui n'est pas toujours
+possible. Il y a une exception : si une chaîne de substitution commence
+par http://
, le préfixe du répertoire ne sera
+pas ajouté, et une redirection externe (ou le passage
+par un mandataire, si le drapeau P est utilisé) sera
+initiée. Voir la directive .htaccess
. Cependant, il est en général
+plus simple, pour éviter la complication des substitutions de préfixes,
+de définir les règles de réécriture dans le contexte du serveur
+principal ou des hôtes virtuels, plutôt que dans une section
+VAL
peut comporter des références arrières
@@ -241,14 +241,6 @@ fonctionnement des variables d'environnement.VAR
avec une valeur vide.VAR
.