From 3161ed034bbea40a705303811d7213aff9be17d2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 01:56:20 +0200 Subject: Merging upstream version 2.4.59. Signed-off-by: Daniel Baumann --- docs/manual/rewrite/flags.html.fr.utf8 | 139 +++++++++++++++++++++++---------- 1 file changed, 96 insertions(+), 43 deletions(-) (limited to 'docs/manual/rewrite/flags.html.fr.utf8') diff --git a/docs/manual/rewrite/flags.html.fr.utf8 b/docs/manual/rewrite/flags.html.fr.utf8 index 75d9aa8..073e46d 100644 --- a/docs/manual/rewrite/flags.html.fr.utf8 +++ b/docs/manual/rewrite/flags.html.fr.utf8 @@ -88,13 +88,7 @@ d'utilisation.

B (échappement dans les références arrières)

Avec le drapeau [B], la directive RewriteRule échappe les caractères -non-alphanumériques avant d'appliquer la transformation. A partir -de la version 2.4.26, vous pouvez limiter l'échappement dans les -références arrières à une liste de caractères que vous pouvez spécifiez comme -dans cet exemple : [B=#?;]. Notez que l'espace peut faire -partie de la liste des caractères à échapper, mais qu'il ne doit pas -être le dernier caractère de cette liste. -

+non-alphanumériques avant d'appliquer la transformation.

mod_rewrite doit supprimer les séquences d'échappement des URLs avant leur @@ -104,6 +98,9 @@ ces dernières sont appliquées. Avec le drapeau B, les caractères non-alphanumériques des références arrières seront échappés. Considérons par exemple cette règle :

+

Pour un échappement similaire des variables du serveur, voir la fonction de mappage "escape". +

+
RewriteRule "^search/(.*)$" "/search.php?term=$1"
@@ -138,6 +135,22 @@ si on présente à ce dernier une URL non échappée.

%{THE_REQUEST}, les chaînes capturées se présentant alors sous la forme codée.

+

A partir +de la version 2.4.26, vous pouvez limiter l'échappement dans les +références arrières à une liste de caractères que vous pouvez spécifiez comme +dans cet exemple : [B=#?;]. Notez que l'espace peut faire +partie de la liste des caractères à échapper, mais que vous devez mettre entre +guillemets le troisième argument de la directive RewriteRule et que l'espace ne doit pas +être le dernier caractère de cette liste. +

+ +
# Échappement des espaces et des points d'interrogation. Les guillemets autour
+# du dernier argument sont obligatoires lorsque l'espace est inclus.
+RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B= ?]"
+ + +

Pour définir la liste des caractères à échapper de cette manière, voir #flag_bne et #flag_bctls

+
top

BNP|backrefnoplus (ne pas échapper @@ -147,9 +160,43 @@ espace en %20 au lieu de '+' dans les références arrières. Ceci s'avère utile lorsque la référence arrière est utilisée dans la partie chemin, et non dans les paramètres de la requête.

+
# Échappe le caractère espace en %20 dans le chemin au lieu de + comme dans la
+# soumission de formulaire à l'aide de la chaîne de paramètres
+RewriteRule "^search/(.*)$" "/search.php/$1" "[B,BNP]"
+ +

Ce drapeau est disponible à partir de la version 2.4.26 du serveur HTTP Apache.

+

BCTLS

+

Le drapeau [BCTLS] est similaire à [B], à la différence que seuls les espaces +et les caractères de contrôle sont échappés. Il s'agit du même jeu de caractères +rejetés lorsqu'ils sont copiés dans la chaîne de paramètres non codée. +

+ +
# Échappe les espaces et les caractères de contrôle
+RewriteRule "^search/(.*)$" "/search.php/$1" "[BCTLS]"
+ + +

Ce drapeau est disponible à partir de la version 2.4.57 du serveur HTTP +Apache.

+ + + +

BNE

+

Les caractères listés dans [BNE=...] sont exclus des listes de caractères +correspondant aux drapeaux [B] ou [BCTLS]. Ils ne seront donc pas échappés. +

+ +
# Échappe les caractères par défaut, sauf /
+RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B,BNE=/]"
+ + +

Ce drapeau est disponible à partir de la version 2.4.57 du serveur HTTP +Apache.

+ + +
top

C|chain

@@ -234,7 +281,7 @@ partir de la version 2.4.47 du serveur HTTP Apache.

Voici un exemple :

RewriteEngine On
-RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.org:1440:/]
+RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.com:1440:/]

Dans l'exemple ci-dessus, la règle ne réécrit @@ -321,10 +368,9 @@ avec une valeur de '1' si l'URI de la requête correspond à un fichier image. Cette variable d'environnement est ensuite utilisée pour exclure une telle requête du journal des accès.

-

-RewriteRule "\.(png|gif|jpg)" "-" [E=image:1]
-CustomLog "logs/access_log" combined env=!image -

+
RewriteRule "\.(png|gif|jpg)$"   "-" [E=image:1]
+CustomLog   "logs/access_log"    combined env=!image
+

Notez que le même effet peut être obtenu à l'aide de la directive SetEnvIf. Cette technique @@ -351,7 +397,7 @@ Forbidden.

La règle suivante va interdire la téléchargement de fichiers .exe depuis votre serveur.

-
RewriteRule "\.exe" "-" [F]
+
RewriteRule "\.exe"   "-" [F]

Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce @@ -372,7 +418,7 @@ disponible auparavant ne l'est plus actuellement.

Comme dans le cas du drapeau [F], on utilise en général la syntaxe "-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :

-
RewriteRule "oldproduct" "-" [G,NC]
+
RewriteRule "oldproduct"   "-" [G,NC]

Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la @@ -386,7 +432,7 @@ spécifié. Par exemple, on peut utiliser ce drapeau pour forcer l'interprétation de tous les fichiers sans extension par le gestionnaire php :

-
RewriteRule "!\." "-" [H=application/x-httpd-php]
+
RewriteRule "!\."  "-" [H=application/x-httpd-php]

@@ -455,8 +501,8 @@ directive la requête concerne déjà index.php, la directive RewriteRule sera sautée.

RewriteBase "/"
-RewriteCond "%{REQUEST_URI}" "!=/index.php"
-RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]
+RewriteCond "%{REQUEST_URI}" !=/index.php +RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]
top
@@ -484,10 +530,10 @@ effectuer la substitution (c'est à dire, remplacer le A par un B).

A partir de la version 2.4.8, ce module renvoie une erreur après -32000 itérations afin d'éviter les boucles infinies. Ce nombre maximum +10000 itérations afin d'éviter les boucles infinies. Ce nombre maximum d'itération peut être modifié via le drapeau N.

# On veut remplacer 1 caractère à chaque itération de la boucle
-RewriteRule "(.+)[><;]$" "$1" [N=64000]
+RewriteRule "(.+)[><;]$" "$1" [N=32000]
 # ... ou s'arrêter après 10 itérations
 RewriteRule "(.+)[><;]$" "$1" [N=10]
@@ -589,13 +635,17 @@ local.

-

Avertissement au sujet des performances

-

Utiliser ce drapeau fait intervenir mod_proxy sans la gestion des connexions - persistantes, ce qui signifie que vous obtiendrez des performances meilleurs si vous utilisez - ProxyPass ou ProxyPassMatch.

-

Ceci est du au fait que ce drapeau induit l'utilisation du worker par défaut, qui - ne gère pas la mise en commun et la réutilisation des connexions.

-

Partout où cela est possible, préférez l'utilisation de ces directives.

+

Avertissement au sujet des performances

+

Utiliser ce drapeau fait intervenir mod_proxy sans la + gestion des connexions persistantes car dans ce cas, c'est le worker par + défaut qui est utilisé, et ce dernier ne gère pas la mise en commun et la + réutilisation des connexions.

+

Pour utiliser les connexions persistantes, vous devez définir un bloc + Proxy, au moins pour les parties + protocole et hôte de l'URL cible, et contenant une directive ProxySet où vous définissez par exemple un + délai.

+

Si vous le définissez avec une directive ProxyPass ou ProxyPassMatch, les connexions persistantes + seront automatiquement utilisées.

Note: mod_proxy doit être activé pour pouvoir @@ -745,19 +795,21 @@ avertissements 'Invalid URI in request'.

Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir exécuter. La syntaxe du drapeau [S] est [S=N], où N correspond au nombre de règles à sauter (sous -réserve que la règle RewriteRule corresponde). +réserve que la règle RewriteRule corresponde et qu'au moins +une condition RewriteCond +préalable soit vérifiée). Ceci peut s'interpréter comme une instruction goto dans votre jeu de règles de réécriture. Dans l'exemple suivant, nous ne voulons exécuter la règle RewriteRule que si l'URI demandé ne correspond pas à un fichier existant.

# La requête concerne-t-elle un fichier qui n'existe pas ?
-RewriteCond "%{REQUEST_FILENAME}" "!-f"
-RewriteCond "%{REQUEST_FILENAME}" "!-d"
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
 # Si c'est la cas, on saute les deux règles de réécriture suivantes
-RewriteRule ".?" "-" [S=2]
+RewriteRule ".?"                  "-" [S=2]
 
-RewriteRule "(.*\.gif)" "images.php?$1"
-RewriteRule "(.*\.html)" "docs.php?$1"
+RewriteRule "(.*\.gif)" "images.php?$1" +RewriteRule "(.*\.html)" "docs.php?$1" @@ -772,18 +824,19 @@ d'élaborer des pseudo-constructions if-then-else : la dernière règle du bloc then contiendra skip=N, où N est le nombre de règles contenues dans le bloc else :

# Est-ce que le fichier existe ?
-RewriteCond "%{REQUEST_FILENAME}" "!-f"
-RewriteCond "%{REQUEST_FILENAME}" "!-d"
-# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
-RewriteRule ".?" "-" [S=3]
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
+# Créer une structure conditionnelle if-then-else en sautant 3 lignes si nous
+# avions l'intention d'aller au bloc "else".
+RewriteRule ".?"                  "-" [S=3]
 
 # Si le fichier existe, alors :
-RewriteRule "(.*\.gif)" "images.php?$1"
+    RewriteRule "(.*\.gif)"  "images.php?$1"
     RewriteRule "(.*\.html)" "docs.php?$1"
-    # Skip past the "else" stanza.
-    RewriteRule ".?" "-" [S=1]
+    # Passer le bloc "else".
+    RewriteRule ".?"         "-" [S=1]
 # ELSE...
-RewriteRule "(.*)" "404.php?file=$1
+    RewriteRule "(.*)"       "404.php?file=$1"
 # END
@@ -801,7 +854,7 @@ du code source Perl en tant que plein texte, s'il est requis d'une certaine manière :

# Sert les fichier .pl en tant que plein texte
-RewriteRule "\.pl$" "-" [T=text/plain]
+RewriteRule "\.pl$" "-" [T=text/plain]

Ou encore, si vous possédez une caméra qui produit des fichiers @@ -809,7 +862,7 @@ images jpeg sans extension, vous pouvez forcer le renvoi de ces images avec le type MIME correct en se basant sur le nom du fichier :

# Les fichiers dont le nom contient 'IMG' sont des images jpg.
-RewriteRule "IMG" "-" [T=image/jpg]
+RewriteRule "IMG" "-" [T=image/jpg]

Notez cependant qu'il s'agit d'un exemple trivial, et que le problème @@ -849,7 +902,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/2.4/rewrite/flags.html'; } })(window, document); //-->