From: Lucien Gentis 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 +
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 :
On peut aussi construire un alias qui met en correspondance le - chemin URL sans tenir compte de la casse :
+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.
Par exemple, supposons que nous voulions reformuler cet alias + avec AliasMatch :
+ +Le simple remplacement d'Alias par AliasMatch ne produira pas le + 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 + 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
. Seuls les
- éléments de chemin complets sont testés, si bien que l'exemple
- précédent ne s'appliquera pas à l'URL
+ http://foo2.example.com/service/foo.txt
. Ceci concerne
+ les requêtes avec paramètres GET
, comme
+ http://example.com/service/foo.pl?q=23&a=42
, qui
+ seront redirigées vers
+ http://foo2.example.com/service/foo.pl?q=23&a=42
.
+ 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
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 :
@@ -271,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
Charset
vous permet de spécifier le
jeu de caractères de la page générée. La valeur par défaut est
- soit UTF-8, ISO-8859-1, selon que le
- système de fichiers sous-jacent est unicode ou non.
+ UTF-8 sous Windows et MAC OS X, et
+ ISO-8859-1 dans les autres cas (en fait selon que le
+ système de fichiers sous-jacent utilise les noms de fichiers en
+ Unicode ou non).
Cette directive permet de remplacer, fusionner, ou @@ -336,23 +338,19 @@ tardif s'exécutent, ce qui permet la modification des en-têtes sortants.
-Par défaut, cette directive n'affecte que les réponses positives
- (réponses dont le code de statut est dans la gamme
- 2xx
). Le paramètre optionnel
- condition peut prendre pour valeur soit
- onsuccess
(valeur par défaut), soit always
- (tous les codes de statut, y compris les réponses positives).
- Définir cette valeur à always
permet d'affecter des
- en-têtes définis par certains modules internes, y compris dans le
- cas d'une réponse positive, et s'avère même nécessaire pour affecter
- des en-têtes de réponses dont le code de statut n'est pas dans la
- gamme 2xx
comme les redirections ou les
- erreurs client.
Pour manipuler les en-têtes définis par les scripts CGI, il
-est nécessaire de spécifier always
comme premier paramètre.
A partir de la version 2.3.9, la condition par défaut est
+ "always", ce qui implique que cette directive agit sans tenir compte
+ du code d'état de la réponse. Dans les versions 2.3.8 et
+ antérieures, "onsuccess" était la condition par défaut, ce qui
+ impliquait que les en-têtes n'étaient modifiés que pour les réponses
+ avec code d'état 2xx
.
Une valeur effective always
peut être nécessaire
+ pour forcer la définition des en-têtes par certains modules internes
+ (tels que 2xx
, comme les redirections
+ ou les erreurs clients.
L'action que cette directive provoque est déterminée par le premier argument (ou par le second argument si une diff --git a/docs/manual/mod/mod_rewrite.xml.fr b/docs/manual/mod/mod_rewrite.xml.fr index 55dcd851dd5..03c68ac351b 100644 --- a/docs/manual/mod/mod_rewrite.xml.fr +++ b/docs/manual/mod/mod_rewrite.xml.fr @@ -1,7 +1,7 @@ - + @@ -159,7 +159,9 @@ la version version 2.1
inherit
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 @@ -172,7 +174,13 @@ la version version 2.1 placées après ces dernières. La place de cette directive - avant ou après les règles locales - n'a aucune influance 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. + réécriture, les règles héritées ne seront pas traitées.
+ +Par exemple, vous pouvez définir une directive