From 666b769f05cf324625c405e37c6ad7d3d7e9176c Mon Sep 17 00:00:00 2001 From: Lucien Gentis Date: Mon, 16 Sep 2019 16:33:30 +0000 Subject: [PATCH] fr doc XML file update. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1867016 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/rewrite/intro.xml.fr | 385 +++++++++++++++++-------------- 1 file changed, 207 insertions(+), 178 deletions(-) diff --git a/docs/manual/rewrite/intro.xml.fr b/docs/manual/rewrite/intro.xml.fr index 0a432e75b7a..869a9d719b6 100644 --- a/docs/manual/rewrite/intro.xml.fr +++ b/docs/manual/rewrite/intro.xml.fr @@ -1,7 +1,7 @@ - + - + @@ -28,63 +28,63 @@ Introduction au module Apache mod_rewrite -

Ce document est un complément à la documentation de référence du module -mod_rewrite. Il décrit les concepts de base dont la -connaissance est nécessaire pour l'utilisation de +

Ce document est un complément à la documentation de référence du module +mod_rewrite. Il décrit les concepts de base dont la +connaissance est nécessaire pour l'utilisation de mod_rewrite. D'autres documents entrent d'avantage dans -les détails, mais celui-ci devrait aider le débutant à se mouiller les +les détails, mais celui-ci devrait aider le débutant à se mouiller les pieds.

Documentation du module mod_rewrite - + Redirection and remise en correspondance -Contrôle d'accès +Contrôle d'accès Serveurs virtuels Mise en cache Utilisation de RewriteMap -Techniques avancées +Techniques avancées Quand ne pas utiliser mod_rewrite
Introduction

Le module Apache mod_rewrite est un module puissant -et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous -pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous -avez besoin. Il est cependant assez complexe, et peut paraître -intimidant au débutant. Certains ont aussi tendance à traiter les -règles de réécriture comme des incantations magiques, et à les utiliser -sans vraiment comprendre leur manière d'agir.

- -

Ce document a pour ambition d'être suffisamment explicite pour -permettre la compréhension, et non la copie en aveugle, de ce qui suit. +et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous +pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous +avez besoin. Il est cependant assez complexe, et peut paraître +intimidant au débutant. Certains ont aussi tendance à traiter les +règles de réécriture comme des incantations magiques, et à les utiliser +sans vraiment comprendre leur manière d'agir.

+ +

Ce document a pour ambition d'être suffisamment explicite pour +permettre la compréhension, et non la copie en aveugle, de ce qui suit.

-

Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs -courantes n'ont pas besoin de la puissance et de la complexité de -mod_rewrite. Pour les tâches simples, voir +

Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs +courantes n'ont pas besoin de la puissance et de la complexité de +mod_rewrite. Pour les tâches simples, voir mod_alias et la documentation sur la Mise en correspondance des URLs avec le -système de fichiers.

+système de fichiers.

-

Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de -journalisation de mod_rewrite à un des niveaux de trace +

Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de +journalisation de mod_rewrite à un des niveaux de trace via la directive LogLevel. Bien que -ceci risque de vous submerger sous une énorme quantité d'informations, -le débogage des problèmes avec la configuration de -mod_rewrite est à ce prix car vous verrez alors -exactement comment chaque règle est traitée.

+ceci risque de vous submerger sous une énorme quantité d'informations, +le débogage des problèmes avec la configuration de +mod_rewrite est à ce prix car vous verrez alors +exactement comment chaque règle est traitée.

Expressions rationnelles -

mod_rewrite utilise le vocabulaire des mod_rewrite utilise le vocabulaire des Expressions rationnelles compatibles Perl. -Ce document n'a pas pour prétention d'être une référence détaillée des +Ce document n'a pas pour prétention d'être une référence détaillée des expressions rationnelles. A cet effet, nous recommandons les pages de manuel de PCRE, la page de manuel des @@ -93,19 +93,19 @@ href="http://shop.oreilly.com/product/9780596528126.do">Mastering Regular Expressions, by Jeffrey Friedl.

Dans ce document, nous avons pour but de vous fournir suffisamment de -vocabulaire des expressions rationnelles pour vous mettre le pied à -l'étrier, sans être dépassé, en espérant que les directives RewriteRule vous apparaîtront comme des -formules scientifiques, plutôt que comme des incantations magiques.

+vocabulaire des expressions rationnelles pour vous mettre le pied à +l'étrier, sans être dépassé, en espérant que les directives RewriteRule vous apparaîtront comme des +formules scientifiques, plutôt que comme des incantations magiques.

Vocabulaire des expressions rationnelles -

Vous trouverez dans ce qui suit le minimum à connaître pour être en -mesure d'écrire des expressions rationnelles et des règles RewriteRule. Ceci ne représente +

Vous trouverez dans ce qui suit le minimum à connaître pour être en +mesure d'écrire des expressions rationnelles et des règles RewriteRule. Ceci ne représente certainement pas un vocabulaire des expressions rationnelles complet, -mais constitue un bon point de départ, et devrait vous aider à -déchiffrer les expressions rationnelles simples, et à écrire vos propres +mais constitue un bon point de départ, et devrait vous aider à +déchiffrer les expressions rationnelles simples, et à écrire vos propres expressions.

@@ -115,120 +115,149 @@ expressions.

- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - -
Exemple
.Correspond à tout caractère unique -c.t correspondra à cat, -cot, cut, etc.
+Répète le caractère de correspondance -précédent une ou plusieurs foisa+ correspond à a, aa, -aaa, etc.
*Répète le caractère de correspondance -précédent zéro ou plusieurs foisa* correspond à tout ce à quoi correspond -a+, mais correspond aussi à la chaîne vide.
?Rend la correspondance optionnelle. -colou?r correspondra à color et colour.
.Correspond à tout caractère uniquec.t correspondra à cat, + cot, cut, etc.
+Répète le caractère de correspondance précédent une ou plusieurs foisa+ correspond à a, aa, + aaa, etc.
*Répète le caractère de correspondance + précédent zéro ou plusieurs foisa* correspond à tout ce à quoi correspond + a+, mais correspond aussi à la chaîne vide.
?Rend la correspondance optionnelle.colou?r correspondra à color et colour.
\Echappe le caractère suivant\. correspondra à . (le point) et non à + tout caractère unique comme expliqué plus haut
^Appelé ancrage, correspond au début de la + chaîne^a correspond à une chaîne qui commence par + a
$L'autre ancrage, correspond à la fin de + la chaîne.a$ correspond à une chaîne qui se termine par + a.
( )Regroupe plusieurs caractères en une + seule entité, et conserve une correspondance à des fins d'utilisation + dans une référence arrière.(ab)+ + correspond à ababab - à savoir, le + + s'applique au groupe. + Pour plus de détails sur les références arrières, voir ci-dessous.
[ ]Une classe de caractères - correspond à + un des caractères de la classec[uoa]t correspond à cut, + cot ou cat.
[^ ]Négation de la classe de caractères - + correspond à tout caractère ne faisant pas partie de la classec[^/]t correspond à cat ou + c=t mais pas à c/t
^Appelé ancrage, correspond au début de la -chaîne^a correspond à une chaîne qui commence par -a
$L'autre ancrage, correspond à la fin de -la chaîne.a$ correspond à une chaîne qui se termine par -a.
( )Regroupe plusieurs caractères en une -seule entité, et conserve une correspondance à des fins d'utilisation -dans une référence arrière.(ab)+ -correspond à ababab - à savoir, le + -s'applique au groupe. -Pour plus de détails sur les références arrières, voir ci-dessous.
[ ]Une classe de caractères - correspond à -un des caractères de la classec[uoa]t correspond à cut, -cot ou cat.
[^ ]Négation de la classe de caractères - -correspond à tout caractère ne faisant pas partie de la classec[^/]t correspond à cat ou -c=t mais pas à c/t
-

Avec mod_rewrite, le caractère ! peut -préfixer une expression rationnelle afin d'en exprimer la négation. -Autrement dit, une chaîne ne correspondra que si elle ne correspond pas -à l'expression située après le !.

+

Avec mod_rewrite, le caractère ! peut +préfixer une expression rationnelle afin d'en exprimer la négation. +Autrement dit, une chaîne ne correspondra que si elle ne correspond pas +à l'expression située après le !.

-
Disponibilité des références -arrières dans les expressions rationnelles +
Disponibilité des références +arrières dans les expressions rationnelles

Vous devez vous souvenir d'une chose importante : chaque fois - que vous utilisez des parenthèses dans un Modèle ou dans - un des modèles de conditions, des références arrières - sont créées en interne et peuvent être rappelées via les chaînes + que vous utilisez des parenthèses dans un Modèle ou dans + un des modèles de conditions, des références arrières + sont créées en interne et peuvent être rappelées via les chaînes $N et %N (voir ci-dessous). Ces - références sont disponibles lors de la création - de la chaîne de substitution d'une directive + références sont disponibles lors de la + création de la chaîne de substitution d'une directive RewriteRule ou de la - chaîne de test d'une directive RewriteCond.

-

Les captures dans les modèles de directives Les captures dans les modèles de directives RewriteRule sont paradoxalement disponibles dans toutes les directives RewriteCond qui précèdent, car + module="mod_rewrite">RewriteCond qui précèdent, car les expressions des directives RewriteRule sont évaluées avant + module="mod_rewrite">RewriteRule sont évaluées avant les conditions individuelles.

- -

La figure 1 montre à quels endroits les - références arrières sont suceptibles - d'être développées, et illustre le flux des comparaisons - effectuées par les règles RewriteRule et +

La figure 1 montre à quels endroits les + références arrières sont suceptibles + d'être développées, et illustre le flux des comparaisons + effectuées par les règles RewriteRule et RewriteCond. Dans les chapitres suivants, nous examinerons comment - utiliser ces références arrières, donc ne vous affolez pas si + utiliser ces références arrières, donc ne vous affolez pas si elles vous paraissent un peu exotiques au premier abord.

Flux des comparaisons effectuées par les règles RewriteRule
+      alt=
- Figure 1 : Le cheminement d'une référence arrière à - travers une règle.
- Dans cet exemple, une requête pour /test/1234 serait - transformée en + Figure 1 : Le cheminement d'une référence arrière à + travers une règle.
+ Dans cet exemple, une requête pour /test/1234 serait + transformée en /admin.foo?page=test&id=1234&host=admin.example.com.

-
Les bases des règles de réécriture -

Une règle de réécriture RewriteRule est constituée de trois -arguments séparés par des espaces. Les arguments sont :

+
Les bases des règles de réécriture +

Une règle de réécriture RewriteRule est constituée de trois +arguments séparés par des espaces. Les arguments sont :

    -
  1. Modèle: le modèle des URLs auxquelles la règle doit +
  2. Modèle: le modèle des URLs auxquelles la règle doit s'appliquer;
  3. -
  4. Substitution: vers quoi la requête correspondante doit être -transformée;
  5. -
  6. [drapeaux]: options affectant la requête réécrite.
  7. +
  8. Substitution: vers quoi la requête correspondante doit être +transformée;
  9. +
  10. [drapeaux]: options affectant la requête réécrite.
-

Le Modèle est une expression -rationnelle. Au sein de la première règle de réécriture, ou jusqu'à -ce qu'une substitution survienne, elle est comparée au chemin de -l'URL de la requête entrante (la -partie située après le nom d'hôte mais avant tout point d'interrogation -qui indique le début d'une chaîne de paramètres de -requête) ou, dans un contexte de répertoire, au chemin de la -requête relativement au répertoire pour lequel la -règle est définie. Lorsqu'une substitution a eu lieu, les -règles suivantes effectuent leurs comparaisons par rapport à la valeur -substituée.

+

Le Modèle est une expression +rationnelle. Au sein de la première règle de réécriture, ou jusqu'à +ce qu'une substitution survienne, elle est comparée au chemin de +l'URL de la requête entrante (la +partie située après le nom d'hôte mais avant tout point d'interrogation +qui indique le début d'une chaîne de paramètres de +requête) ou, dans un contexte de répertoire, au chemin de la +requête relativement au répertoire pour lequel la +règle est définie. Lorsqu'une substitution a eu lieu, les +règles suivantes effectuent leurs comparaisons par rapport à la valeur +substituée.

Figure 2 : Syntaxe de la directive RewriteRule.

-

La chaîne de Substitution peut, quant à elle, être de +

La chaîne de Substitution peut, quant à elle, être de trois types :

-
Un chemin complet du système de fichiers vers une ressource
+
Un chemin complet du système de fichiers vers une ressource
RewriteRule "^/jeux" "/usr/local/jeux/web" -

Ceci peut faire correspondre une requête à toute localisation voulue de -votre système de fichiers, un peu comme la directive Ceci peut faire correspondre une requête à toute localisation voulue de +votre système de fichiers, un peu comme la directive Alias.

@@ -256,8 +285,8 @@ module="mod_alias">Alias.

RewriteRule "^/foo$" "/bar"

Si la directive DocumentRoot a -pour valeur /usr/local/apache2/htdocs, cette règle va faire -correspondre les requêtes pour http://example.com/foo au +pour valeur /usr/local/apache2/htdocs, cette règle va faire +correspondre les requêtes pour http://example.com/foo au chemin /usr/local/apache2/htdocs/bar.

@@ -266,36 +295,36 @@ chemin /usr/local/apache2/htdocs/bar.

RewriteRule "^/produits/vues$" "http://site2.example.com/voirproduits.html" [R] -

Ceci informe le client qu'il doit effectuer une nouvelle requête vers -l'URL spécifiée.

+

Ceci informe le client qu'il doit effectuer une nouvelle requête vers +l'URL spécifiée.

-

La chaîne de Substitution peut aussi contenir des -références arrières vers des parties du chemin d'URL entrant -correspondant au Modèle. Considérons ce qui suit :

+

La chaîne de Substitution peut aussi contenir des +références arrières vers des parties du chemin d'URL entrant +correspondant au Modèle. Considérons ce qui suit :

RewriteRule "^/produits/(.*)/view$" "/var/web/produitsdb/$1" -

La variable $1 sera remplacée par tout texte -correspondant à l'expression située entre les parenthèses dans le -Modèle. Par exemple, une requête pour +

La variable $1 sera remplacée par tout texte +correspondant à l'expression située entre les parenthèses dans le +Modèle. Par exemple, une requête pour http://example.com/produits/r14df/vue correspondra au chemin /var/web/produitsdb/r14df.

-

S'il y a plus d'une expression entre parenthèses, elle seront +

S'il y a plus d'une expression entre parenthèses, elle seront accessibles selon leur ordre d'apparition via les variables $1, $2, $3, etc...

-
Drapeaux de réécriture -

Le comportement d'une règle RewriteRule peut être modifié par la -présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les -conditions de correspondance d'une règle peuvent être rendues -insensibles à la casse par la présence du drapeau [NC] : +

Drapeaux de réécriture +

Le comportement d'une règle RewriteRule peut être modifié par la +présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les +conditions de correspondance d'une règle peuvent être rendues +insensibles à la casse par la présence du drapeau [NC] :

RewriteRule "^puppy.html" "petitchien.html" [NC] @@ -303,21 +332,21 @@ RewriteRule "^puppy.html" "petitchien.html" [NC]

Pour une liste des drapeaux disponibles, leurs significations, et des exemples, voir le document Drapeaux de -réécriture.

+réécriture.

-
Conditions de réécriture +
Conditions de réécriture

Il est possible d'utiliser une ou plusieurs directives RewriteCond pour restreindre les types -de requêtes auxquelles devra s'appliquer la règle RewriteRule suivante. Le premier -argument est une variable décrivant une caractéristique de la requête, +argument est une variable décrivant une caractéristique de la requête, le second argument est une expression rationnelle -qui doit correspondre à la variable, et un troisième argument optionnel -est une liste de drapeaux qui modifient la manière dont la -correspondance est évaluée.

+qui doit correspondre à la variable, et un troisième argument optionnel +est une liste de drapeaux qui modifient la manière dont la +correspondance est évaluée.

-

Par exemple, pour renvoyer toutes les requêtes en provenance d'une +

Par exemple, pour renvoyer toutes les requêtes en provenance d'une certaine tranche d'adresses IP vers un autre serveur, vous pouvez utiliser :

@@ -334,33 +363,33 @@ RewriteCond "%{REMOTE_ADDR}" "^10\.2\." RewriteRule "(.*)" "http://intranet.example.com$1" -

Si vous spécifiez plus d'une directive Si vous spécifiez plus d'une directive RewriteCond, ces directives -doivent toutes être satisfaites pour que la règle RewriteRule suivante s'applique. Par exemple, -pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne -de requête, sauf si elles contiennent aussi un cookie contenant le mot +pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne +de requête, sauf si elles contiennent aussi un cookie contenant le mot "go", vous pouvez utiliser :

RewriteCond "%{QUERY_STRING}" "hack" RewriteCond "%{HTTP_COOKIE}" "!go" RewriteRule "." "-" [F] -

Notez que le point d'exclamation indique une correspondance négative -; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"

+

Notez que le point d'exclamation indique une correspondance négative +; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"

Les correspondances dans les expressions rationnelles contenues dans les directives RewriteCond -peuvent constituer des parties de la chaîne de Substitution -de la règle RewriteRule via +peuvent constituer des parties de la chaîne de Substitution +de la règle RewriteRule via les variables %1, %2, etc... Par -exemple, ce qui suit va diriger la requête vers un répertoire différent -en fonction du nom d'hôte utilisé pour accéder au site :

+exemple, ce qui suit va diriger la requête vers un répertoire différent +en fonction du nom d'hôte utilisé pour accéder au site :

RewriteCond "%{HTTP_HOST}" "(.*)" RewriteRule "^/(.*)" "/sites/%1/$1" -

Si la requête concernait http://example.com/foo/bar, +

Si la requête concernait http://example.com/foo/bar, alors %1 contiendrait example.com et $1 contiendrait foo/bar.

@@ -368,36 +397,36 @@ alors %1 contiendrait example.com et
-
Tables de réécriture +
Tables de réécriture

La directive RewriteMap -permet en quelque sorte de faire appel à une fonction externe pour -effectuer la réécriture à votre place. Tout ceci est décrit plus en -détails dans la Documentation -supplémentaire sur RewriteMap.

+permet en quelque sorte de faire appel à une fonction externe pour +effectuer la réécriture à votre place. Tout ceci est décrit plus en +détails dans la Documentation +supplémentaire sur RewriteMap.

Fichiers .htaccess -

La réécriture est en général définie au niveau de la configuration du +

La réécriture est en général définie au niveau de la configuration du serveur principal (en dehors de toute section Directory) ou dans une section VirtualHost. Il s'agit là de la -manière la plus simple de mettre en oeuvre la réécriture et nous la +type="section" module="core">VirtualHost. Il s'agit là de la +manière la plus simple de mettre en oeuvre la réécriture et nous la recommandons. Il est possible, cependant, de mettre en oeuvre la -réécriture au sein d'une section Directory ou d'un fichier .htaccess ; ce type de -configuration est cependant plus complexe. Cette technique est appelée -réécriture par répertoire.

+configuration est cependant plus complexe. Cette technique est appelée +réécriture par répertoire.

-

La principale différence avec les réécritures au niveau du serveur réside -dans le fait que le préfixe du chemin du répertoire contenant le fichier -.htaccess est supprimé avant la mise en correspondance dans -la règle RewriteRule. De +

La principale différence avec les réécritures au niveau du serveur réside +dans le fait que le préfixe du chemin du répertoire contenant le fichier +.htaccess est supprimé avant la mise en correspondance dans +la règle RewriteRule. De plus, on doit utiliser la directive RewriteBase pour s'assurer que la -requête est correctement mise en correspondance.

+requête est correctement mise en correspondance.

-- 2.47.3