From: Lucien Gentis Date: Sat, 17 Sep 2016 13:16:00 +0000 (+0000) Subject: XML updates. X-Git-Tag: 2.4.24~243 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3cfcbe2f44b9eb918e49ab41f972b03cba92d71b;p=thirdparty%2Fapache%2Fhttpd.git XML updates. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1761221 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/install.xml.fr b/docs/manual/install.xml.fr index b7a54b65f68..4d8ebf3f8a7 100644 --- a/docs/manual/install.xml.fr +++ b/docs/manual/install.xml.fr @@ -1,9 +1,9 @@ - + - + + @@ -25,24 +25,24 @@ mod_dbd -Gestion des connexions à une base de données SQL +Gestion des connexions à une base de données SQL Extension mod_dbd.c dbd_module -Versions 2.1 and supérieures +Versions 2.1 and supérieures -

Le module mod_dbd gère les connexions - à une base de données SQL via APR. Il permet - aux modules qui requièrent des fonctions liées aux bases de données - SQL de se connecter à une base de données à la demande, et s'efforce - de conférer aux bases de données une efficacité et une - évolutivité optimales pour les MPMs threadés ou non threadés. Pour - plus de détails, voir le site web Le module mod_dbd gère les connexions + à une base de données SQL via APR. Il permet + aux modules qui requièrent des fonctions liées aux bases de données + SQL de se connecter à une base de données à la demande, et s'efforce + de conférer aux bases de données une efficacité et une + évolutivité optimales pour les MPMs threadés ou non threadés. Pour + plus de détails, voir le site web APR, ainsi que cette vue d'ensemble de l'environnement de - développement d'Apache DBD par son développeur initial. + développement d'Apache DBD par son développeur initial.

@@ -50,20 +50,43 @@ passe
Regroupement des connexions -

Ce module gère de manière optimisée en fonction de la plate-forme - les connexions aux bases de données. Sur les plates-formes non - threadées, il maintient une connexion persistente à la manière d'un +

Ce module gère de manière optimisée en fonction de la plate-forme + les connexions aux bases de données. Sur les plates-formes non + threadées, il maintient une connexion persistente à la manière d'un LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les - plates-formes threadées, il maintient un groupe de - connexions à la fois plus évolutif et plus efficace, comme - décrit dans cet + plates-formes threadées, il maintient un groupe de + connexions à la fois plus évolutif et plus efficace, comme + décrit dans cet article d'ApacheTutor. Notez que mod_dbd - remplace les modules présentés dans cet article.

+ remplace les modules présentés dans cet article.

+
+ +
Connexion + +

Pour vous connecter à votre base de données, vous devez spécifier un + pilote et des paramètres de connexion qui diffèrent selon le moteur de base + de données. Par exemple, pour vous connecter à mysql, spécifiez ce qui suit + :

+ + +DBDriver mysql +DBDParams host=localhost,dbname=pony,user=shetland,pass=appaloosa + + +

Vous pourrez alors utiliser cette connexion dans de nombreux autres + modules comme mod_rewrite, mod_authn_dbd + et mod_lua. Vous trouverez des exemples d'utilisation dans + la documentation de ces modules.

+ +

Voir la syntaxe de la directive DBDParams pour les + informations à fournir dans la chaîne de connexion en fonction des + différents pilotes de base de données supportés.

+
API DBD d'Apache

mod_dbd exporte cinq fonctions que d'autres - modules pourront utiliser. L'API se présente comme suit :

+ modules pourront utiliser. L'API se présente comme suit :

typedef struct { @@ -72,9 +95,9 @@ typedef struct { apr_hash_t *prepared; } ap_dbd_t; -/* Fonctions exportées pour accéder à la base de données */ +/* Fonctions exportées pour accéder à la base de données */ -/* ouvre une connexion qui DOIT avoir été explicitement fermée. +/* ouvre une connexion qui DOIT avoir été explicitement fermée. * Renvoie NULL en cas d'erreur */ AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*); @@ -82,24 +105,24 @@ AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*); /* ferme une connexion ouverte avec ap_dbd_open */ AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*); -/* acquiert une connexion qui aura la durée de vie de la requête et qui - * NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas - * d'erreur. C'est la fonction recommandée pour la plupart des +/* acquiert une connexion qui aura la durée de vie de la requête et qui + * NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas + * d'erreur. C'est la fonction recommandée pour la plupart des * applications. */ AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); -/* acquiert une connexion qui aura la durée de vie d'une connexion et - * qui NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas +/* acquiert une connexion qui aura la durée de vie d'une connexion et + * qui NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas * d'erreur. */ AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); -/* Prépare une requête qu'un module client pourra utiliser */ +/* Prépare une requête qu'un module client pourra utiliser */ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); -/* Exporte aussi ces fonctions à titre optionnel mour les modules qui - * péfèreraient les utiliser */ +/* Exporte aussi ces fonctions à titre optionnel mour les modules qui + * péfèreraient les utiliser */ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); @@ -108,108 +131,108 @@ APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const c
-
Requêtes SQL préparées -

mod_dbd supporte les requêtes SQL préparées à - destination des modules qui pourraient les utiliser. Chaque requête - préparée doit posséder un nom (étiquette), et est stockée dans un - condensé (hash) : les condensés sont du type - apr_dbd_prepared_t et s'utilisent dans toute requête - SQL ou commande select préparée par apr_dbd.

+
Requêtes SQL préparées +

mod_dbd supporte les requêtes SQL préparées à + destination des modules qui pourraient les utiliser. Chaque requête + préparée doit posséder un nom (étiquette), et est stockée dans un + condensé (hash) : les condensés sont du type + apr_dbd_prepared_t et s'utilisent dans toute requête + SQL ou commande select préparée par apr_dbd.

Il est du ressort des modules utilisateurs de dbd d'utiliser les - requêtes préparées et de préciser quelles requêtes doivent être - spécifiées dans httpd.conf, ou de fournir leurs propres directives + requêtes préparées et de préciser quelles requêtes doivent être + spécifiées dans httpd.conf, ou de fournir leurs propres directives et d'utiliser ap_dbd_prepare.

Avertissement - Lorsqu'on utilise des requêtes préparées avec des bases de - données MySQL, il est préférable de définir - reconnect à 0 dans la chaîne de connexion, afin - d'éviter des erreurs provoquées par un client MySQL qui se - reconnecterait sans réinitialiser correctement les requêtes - préparées. Si reconnect est défini à 1, toute - connexion défectueuse sera sensée être réparée, mais comme - mod_dbd n'en est pas informé, les requêtes préparées seront - invalidées. + Lorsqu'on utilise des requêtes préparées avec des bases de + données MySQL, il est préférable de définir + reconnect à 0 dans la chaîne de connexion, afin + d'éviter des erreurs provoquées par un client MySQL qui se + reconnecterait sans réinitialiser correctement les requêtes + préparées. Si reconnect est défini à 1, toute + connexion défectueuse sera sensée être réparée, mais comme + mod_dbd n'en est pas informé, les requêtes préparées seront + invalidées.
AVERTISSEMENT DE SECURITE -

Toute application web impliquant une base de données doit se - protéger elle-même contre les attaques de type injection SQL. Dans - la plupart des cas Apache DBD est sûr, car les applications - utilisent des requêtes préparées, et les entrées non sures ne seront - utilisées qu'à titre de données. Bien entendu, si vous l'utilisez - via un module tiers, vous devez être au fait des précautions à +

Toute application web impliquant une base de données doit se + protéger elle-même contre les attaques de type injection SQL. Dans + la plupart des cas Apache DBD est sûr, car les applications + utilisent des requêtes préparées, et les entrées non sures ne seront + utilisées qu'à titre de données. Bien entendu, si vous l'utilisez + via un module tiers, vous devez être au fait des précautions à prendre.

Cependant, le pilote FreeTDS est non - sûr de par sa nature-même. Comme la bibliothèque - sous-jacente ne supporte pas les requêtes préparées, le pilote en - effectue une émulation, et les entrées non sûres sont fusionnées - avec la requête SQL.

-

Il peut être sécurisé en décontaminant toutes les - entrées : un processus inspiré de la recherche de contaminations + sûr de par sa nature-même. Comme la bibliothèque + sous-jacente ne supporte pas les requêtes préparées, le pilote en + effectue une émulation, et les entrées non sûres sont fusionnées + avec la requête SQL.

+

Il peut être sécurisé en décontaminant toutes les + entrées : un processus inspiré de la recherche de contaminations (taint mode) de - Perl. Chaque entrée est comparée à une expression rationnelle, et - seules les entrées qui correspondent sont utilisées, en accord avec + Perl. Chaque entrée est comparée à une expression rationnelle, et + seules les entrées qui correspondent sont utilisées, en accord avec le langage Perl :

  $untrusted =~ /([a-z]+)/;
   $trusted = $1;

Pour utiliser ceci, les expressions rationnelles de - décontamination doivent être incluses dans les requêtes préparées. - L'expression rationnelle doit se situer immédiatement après le - caractère % dans la requête préparée, et doit être entourée - d'accolades {}. Par exemple, si votre application attend une entrée - alphanumérique, vous pouvez utiliser :

+ décontamination doivent être incluses dans les requêtes préparées. + L'expression rationnelle doit se situer immédiatement après le + caractère % dans la requête préparée, et doit être entourée + d'accolades {}. Par exemple, si votre application attend une entrée + alphanumérique, vous pouvez utiliser :

"SELECT foo FROM bar WHERE input = %s" -

avec d'autres pilotes, et ne risquer au pire qu'une requête - échouée. Mais avec FreeTDS, vous devez utiliser :

+

avec d'autres pilotes, et ne risquer au pire qu'une requête + échouée. Mais avec FreeTDS, vous devez utiliser :

"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s" -

tout ce qui ne correspond pas à l'expression rationnelle est - alors rejeté, et la requête est maintenant sûre.

+

tout ce qui ne correspond pas à l'expression rationnelle est + alors rejeté, et la requête est maintenant sûre.

Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui - offre la sécurité des requêtes préparées authentiques.

+ offre la sécurité des requêtes préparées authentiques.

DBDriver -Spécifie un pilote SQL +Spécifie un pilote SQL DBDriver nom server configvirtual host -

Cette directive permet de spécifier un pilote apr_dbd par son - nom. Le pilote doit être installé sur votre système (sur la plupart - des systèmes, il s'agit d'un objet partagé ou d'une dll). Par - exemple, DBDriver mysql va sélectionner le pilote MySQL - dans la bibliothèque apr_dbd_mysql.so.

+

Cette directive permet de spécifier un pilote apr_dbd par son + nom. Le pilote doit être installé sur votre système (sur la plupart + des systèmes, il s'agit d'un objet partagé ou d'une dll). Par + exemple, DBDriver mysql va sélectionner le pilote MySQL + dans la bibliothèque apr_dbd_mysql.so.

DBDParams -Paramètres de la connexion à la base de -données +Paramètres de la connexion à la base de +données DBDParams param1=valeur1[,param2=valeur2] server configvirtual host -

Cette directive permet de spécifier des paramètres selon les - besoins du pilote concerné. En général, les paramètres à passer - concernent tout ce qui n'a pas de valeur par défaut comme le nom - d'utilisateur, le mot de passe, le nom de la base de données, le nom - d'hôte et le numéro de port de la connexion.

-

Les paramètres de la chaîne de connexion en fonction des - différents pilotes comprennent :

+

Cette directive permet de spécifier des paramètres selon les + besoins du pilote concerné. En général, les paramètres à passer + concernent tout ce qui n'a pas de valeur par défaut comme le nom + d'utilisateur, le mot de passe, le nom de la base de données, le nom + d'hôte et le numéro de port de la connexion.

+

Les paramètres de la chaîne de connexion en fonction des + différents pilotes comprennent :

FreeTDS (pour MSSQL et SyBase)
username, password, appname, dbname, host, charset, lang, server
@@ -218,13 +241,13 @@ données
Oracle
user, pass, dbname, server
PostgreSQL
-
La chaîne de connexion est passée directement à PQconnectdb
+
La chaîne de connexion est passée directement à PQconnectdb
SQLite2
-
La chaîne de connexion est scindée avec comme séparateur le - caractère ':', et partie1:partie2 est utilisé dans +
La chaîne de connexion est scindée avec comme séparateur le + caractère ':', et partie1:partie2 est utilisé dans sqlite_open(partie1, atoi(partie2), NULL)
SQLite3
-
La chaîne de connexion est passée directement à sqlite3_open
+
La chaîne de connexion est passée directement à sqlite3_open
ODBC
datasource, user, password, connect, ctimeout, stimeout, access, txmode, bufsize
@@ -239,16 +262,16 @@ données -

Si cette directive est définie à Off, les connexions persistentes - et les connexions groupées sont désactivées. À la demande d'un - client, une nouvelle connexion à la base de données est ouverte, et - fermée immédiatement à l'issue du traitement. Cette configuration ne - doit être utilisée qu'à des fins de débogage, ou sur des serveurs à +

Si cette directive est définie à Off, les connexions persistentes + et les connexions groupées sont désactivées. À la demande d'un + client, une nouvelle connexion à la base de données est ouverte, et + fermée immédiatement à l'issue du traitement. Cette configuration ne + doit être utilisée qu'à des fins de débogage, ou sur des serveurs à charge faible.

-

Par défaut, les groupes de connexions persistentes sont activés +

Par défaut, les groupes de connexions persistentes sont activés (ou une seule connexion persistente du style LAMP pour les serveurs - non threadés), et c'est la configuration qui devrait être utilisée + non threadés), et c'est la configuration qui devrait être utilisée dans la plupart des cas sur un serveur en production.

Avant la version 2.2.2, cette directive n'acceptait que les @@ -259,17 +282,17 @@ données DBDPrepareSQL -Définit une requête SQL préparée -DBDPrepareSQL "requête SQL" étiquette +Définit une requête SQL préparée +DBDPrepareSQL "requête SQL" étiquette server configvirtual host

Pour les modules tels que les modules d'authentification, qui - utilisent de manière répétée la même requête SQL, on peut optimiser - les performances en préparant la requête une fois pour toutes au - démarrage, plutôt qu'à chaque utilisation. Cette directive permet de - préparer une requête SQL et de lui assigner une étiquette.

+ utilisent de manière répétée la même requête SQL, on peut optimiser + les performances en préparant la requête une fois pour toutes au + démarrage, plutôt qu'à chaque utilisation. Cette directive permet de + préparer une requête SQL et de lui assigner une étiquette.

@@ -282,8 +305,8 @@ données -

Cette directive permet de définir le nombre minimum de connexions - par processus (plates-formes threadées uniquement).

+

Cette directive permet de définir le nombre minimum de connexions + par processus (plates-formes threadées uniquement).

@@ -296,9 +319,9 @@ données -

Cette directive permet de définir le nombre maximum de connexions - à maintenir par processus, en dehors de celles servant à gérer les - pics de demandes (plates-formes threadées uniquement).

+

Cette directive permet de définir le nombre maximum de connexions + à maintenir par processus, en dehors de celles servant à gérer les + pics de demandes (plates-formes threadées uniquement).

@@ -311,39 +334,39 @@ données -

Cette directive permet de définir le nombre maximum effectif de - connexions par processus (plates-formes threadées uniquement).

+

Cette directive permet de définir le nombre maximum effectif de + connexions par processus (plates-formes threadées uniquement).

DBDExptime -Durée de vie des connexions inactives -DBDExptime durée en secondes +Durée de vie des connexions inactives +DBDExptime durée en secondes DBDExptime 300 server configvirtual host -

Cette directive permet de définir la durée de vie des connexions - inactives lorsque le nombre de connexions spécifié par la directive - DBDKeep a été dépassé (plates-formes threadées uniquement).

+

Cette directive permet de définir la durée de vie des connexions + inactives lorsque le nombre de connexions spécifié par la directive + DBDKeep a été dépassé (plates-formes threadées uniquement).

DBDInitSQL -Exécute une instruction SQL après connexion à une base de -données +Exécute une instruction SQL après connexion à une base de +données DBDInitSQL "instruction SQL" server configvirtual host -

Les modules qui le souhaitent peuvent exécuter une ou plusieurs - instructions SQL après connexion à une base de données. Par exemple - initialiser certaines valeurs, ou ajouter une entrée dans le journal - lors d'une nouvelle connexion à la base de données.

+

Les modules qui le souhaitent peuvent exécuter une ou plusieurs + instructions SQL après connexion à une base de données. Par exemple + initialiser certaines valeurs, ou ajouter une entrée dans le journal + lors d'une nouvelle connexion à la base de données.

diff --git a/docs/manual/mod/mod_proxy_html.xml.fr b/docs/manual/mod/mod_proxy_html.xml.fr index e65e0cdee2a..96e018afeb4 100644 --- a/docs/manual/mod/mod_proxy_html.xml.fr +++ b/docs/manual/mod/mod_proxy_html.xml.fr @@ -1,7 +1,7 @@ - + - + @@ -145,7 +145,9 @@ liens HTML. Lors de l'interprétation d'un document, chaque fois qu'un lien correspond à modèle-source, la partie du lien concernée sera réécrite en modèle-cible, en tenant compte des modifications induites par les drapeaux éventuellement spécifiés et par -la directive ProxyHTMLExtended.

+la directive ProxyHTMLExtended. +Ne seront considérés comme des liens HTML que les éléments spécifiés via la +directive ProxyHTMLLinks.

Le troisième argument optionnel permet de féfinir un des drapeaux suivants (les drapeaux sont sensibles à la casse) :

@@ -447,18 +449,35 @@ HTML 4 et XHTML 1.

Disponible depuis la version 2.4 du serveur HTTP Apache. Disponible en tant que module tiers dans les versions 2.x antérieures. -

Cette directive permet de spécifier les éléments dont les attributs -d'URL doivent être réécrits en utilisant les règles standards -ProxyHTMLURLMap. Vous devez définir une directive -ProxyHTMLLinks pour chaque élément, mais chacune d'entre elles peut -spécifier un nombre quelconque d'attributs

-

Normalement, cette directive est définie globalement. Si vous -définissez ProxyHTMLLinks à plusieurs niveaux, certains niveaux -l'emportant sur d'autres, vous devrez spécifier un jeu complet -de liens pour chaque niveau.

-

Le fichier proxy-html.conf fournit une configuration par -défaut et définit les liens HTML selon les standards -HTML 4 et XHTML 1.

+

Cette directive permet de spécifier les éléments dont les attributs d'URL +doivent être réécrits en utilisant les règles standards ProxyHTMLURLMap. Vous devez définir une +directive ProxyHTMLLinks pour chaque élément, mais chacune d'entre elles peut +spécifier un nombre quelconque d'attributs

Normalement, cette directive +est définie globalement. Si vous définissez ProxyHTMLLinks à plusieurs niveaux, +certains niveaux l'emportant sur d'autres, vous devrez spécifier un jeu complet +de liens pour chaque niveau.

Le fichier proxy-html.conf +fournit une configuration par défaut et définit les liens HTML selon les +standards HTML 4 et XHTML 1.

+ +Exemples issus de proxy-html.conf + +ProxyHTMLLinks a href +ProxyHTMLLinks area href +ProxyHTMLLinks link href +ProxyHTMLLinks img src longdesc usemap +ProxyHTMLLinks object classid codebase data usemap +ProxyHTMLLinks q cite +ProxyHTMLLinks blockquote cite +ProxyHTMLLinks ins cite +ProxyHTMLLinks del cite +ProxyHTMLLinks form action +ProxyHTMLLinks input src usemap +ProxyHTMLLinks head profile +ProxyHTMLLinks base href +ProxyHTMLLinks script src for + +
diff --git a/docs/manual/rewrite/vhosts.xml.fr b/docs/manual/rewrite/vhosts.xml.fr index a534ac47a77..b2ef0223b64 100644 --- a/docs/manual/rewrite/vhosts.xml.fr +++ b/docs/manual/rewrite/vhosts.xml.fr @@ -1,7 +1,7 @@ - + - + @@ -25,50 +25,50 @@ Rewrite -Hébergement virtuel de masse avec mod_rewrite +Hébergement virtuel de masse avec mod_rewrite -

Ce document est un complément à la documentation de référence du module -mod_rewrite. Il décrit comment créer des serveurs -virtuels dynamiquement configurés en utilisant +

Ce document est un complément à la documentation de référence du module +mod_rewrite. Il décrit comment créer des serveurs +virtuels dynamiquement configurés en utilisant mod_rewrite.

L'utilisation de mod_rewrite n'est pas la meilleure -méthode pour configurer des serveurs virtuels. Vous devez dans un -premier temps tenter de résoudre votre problème via ces d'autres méthodes avant d'avoir -recours à mod_rewrite. Voir aussi le document Comment éviter l'utilisation de +méthode pour configurer des serveurs virtuels. Vous devez dans un +premier temps tenter de résoudre votre problème via ces d'autres méthodes avant d'avoir +recours à mod_rewrite. Voir aussi le document Comment éviter l'utilisation de mod_rewrite.
Documentation du module -Introduction à mod_rewrite +Introduction à mod_rewrite Redirection et remise en correspondance -Contrôle d'accès +Contrôle d'accès Serveurs mandataires Utilisation de RewriteMap -Techniques avancées +Techniques avancées Quand ne pas utiliser mod_rewrite
- Serveurs virtuels pour des noms d'hôtes arbitraires + Serveurs virtuels pour des noms d'hôtes arbitraires
Description :
-

Nous voulons créer automatiquement un serveur virtuel pour tout - nom d'hôte qui peut être résolu dans notre domaine, sans avoir à - créer de nouvelle section VirtualHost.

+

Nous voulons créer automatiquement un serveur virtuel pour tout + nom d'hôte qui peut être résolu dans notre domaine, sans avoir à + créer de nouvelle section VirtualHost.

-

Dans cet exemple, nous supposons que nous utilisons le nom d'hôte +

Dans cet exemple, nous supposons que nous utilisons le nom d'hôte www.SITE.example.com pour chaque utilisateur, et que nous servons leur contenu depuis /home/SITE/www.

@@ -90,31 +90,31 @@ RewriteRule "^(.*)" "/home/%1/www$1"
Discussion
- Vous devez vérifier le bon fonctionnement de la - résolution DNS - Apache ne gère pas la résolution de nom. Vous - devrez créer soit des enregistrements CNAME pour chaque nom d'hôte, - soit un enregistrement DNS avec caractères génériques. La création + Vous devez vérifier le bon fonctionnement de la + résolution DNS - Apache ne gère pas la résolution de nom. Vous + devrez créer soit des enregistrements CNAME pour chaque nom d'hôte, + soit un enregistrement DNS avec caractères génériques. La création des enregistrements DNS est en dehors du sujet de ce document.

La directive RewriteMap interne tolower permet de -s'assurer que les noms d'hôtes utilisés seront tous en minuscules, de -façon à éviter toute ambiguité dans la structure des répertoires qui -doit être créée.

- -

Les contenus des parenthèses utilisées dans une directive RewriteCond sont enregistrés dans les -références arrières %1, %2, etc..., alors que -les contenus des parenthèses utilisées dans une directive + +

Les contenus des parenthèses utilisées dans une directive RewriteCond sont enregistrés dans les +références arrières %1, %2, etc..., alors que +les contenus des parenthèses utilisées dans une directive RewriteRule le sont dans les -références arrières $1, $2, etc...

+références arrières $1, $2, etc...

-Comme c'est le cas pour de nombreuses techniques discutées dans ce -document, mod_rewrite n'est vraiment pas la meilleure méthode pour -accomplir cette tâche. Vous devez plutôt vous tourner vers -mod_vhost_alias, car ce dernier sera bien plus à même -de gérer tout ce qui est au delà du domaine des fichiers statiques, -comme les contenus dynamiques et la résolution des alias. +Comme c'est le cas pour de nombreuses techniques discutées dans ce +document, mod_rewrite n'est vraiment pas la meilleure méthode pour +accomplir cette tâche. Vous devez plutôt vous tourner vers +mod_vhost_alias, car ce dernier sera bien plus à même +de gérer tout ce qui est au delà du domaine des fichiers statiques, +comme les contenus dynamiques et la résolution des alias.

@@ -125,24 +125,24 @@ comme les contenus dynamiques et la résolution des alias. virtuels via mod_rewrite

Cet extrait du fichier httpd.conf permet d'obtenir - le même résultat que le premier exemple. - La première moitié est très similaire à la partie correspondante - ci-dessus, excepté quelques modifications requises à des fins de - compatibilité ascendante et pour faire en sorte que la partie - mod_rewrite fonctionne correctement ; la seconde moitié + le même résultat que le premier exemple. + La première moitié est très similaire à la partie correspondante + ci-dessus, excepté quelques modifications requises à des fins de + compatibilité ascendante et pour faire en sorte que la partie + mod_rewrite fonctionne correctement ; la seconde moitié configure mod_rewrite pour effectuer le travail proprement dit.

-

Comme mod_rewrite s'exécute avant tout autre module +

Comme mod_rewrite s'exécute avant tout autre module de traduction d'URI (comme mod_alias), il faut lui - ordonner explicitement d'ignorer toute URL susceptible d'être - traitée par ces autres modules. Et comme ces règles auraient sinon - court-circuité toute directive ScriptAlias, nous devons - faire en sorte que mod_rewrite déclare explicitement + ordonner explicitement d'ignorer toute URL susceptible d'être + traitée par ces autres modules. Et comme ces règles auraient sinon + court-circuité toute directive ScriptAlias, nous devons + faire en sorte que mod_rewrite déclare explicitement ces correspondances.

-# extrait le nom de serveur de l'en-tête Host: +# extrait le nom de serveur de l'en-tête Host: UseCanonicalName Off # journaux dissociables @@ -150,18 +150,18 @@ LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon CustomLog "logs/access_log" vcommon <Directory "/www/hosts"> - # ExecCGI est nécessaire ici car on ne peut pas forcer l'exécution - # des CGI à la manière de ScriptAlias + # ExecCGI est nécessaire ici car on ne peut pas forcer l'exécution + # des CGI à la manière de ScriptAlias Options FollowSymLinks ExecCGI </Directory> RewriteEngine On -# un nom de serveur extrait d'un en-tête Host: peut être dans n'importe +# un nom de serveur extrait d'un en-tête Host: peut être dans n'importe # quelle casse ## on s'occupe tout d'abord des documents normaux :
-# permet à Alias "/icons/" de fonctionner - répéter pour les autres +# permet à Alias "/icons/" de fonctionner - répéter pour les autres RewriteCond "%{REQUEST_URI}" "!^/icons/" # permet aux CGIs de fonctionner RewriteCond "%{REQUEST_URI}" "!^/cgi-bin/" @@ -177,15 +177,15 @@ RewriteRule "^/(.*)$" "/www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1" [H=c
Utilisation d'un fichier de configuration -du serveur virtuel séparé +du serveur virtuel séparé -

Cette construction utilise des fonctionnalités plus avancées de +

Cette construction utilise des fonctionnalités plus avancées de mod_rewrite pour effectuer la traduction depuis le - serveur virtuel vers la racine des documents, à partir d'un fichier - de configuration séparé. Elle est plus souple mais nécessite une - configuration plus compliquée.

+ serveur virtuel vers la racine des documents, à partir d'un fichier + de configuration séparé. Elle est plus souple mais nécessite une + configuration plus compliquée.

-

Le fichier vhost.map devrait ressembler à ceci :

+

Le fichier vhost.map devrait ressembler à ceci :

www.client-1.example.com /www/clients/1
@@ -194,28 +194,28 @@ www.client-2.example.com /www/clients/2
www.client-N.example.com /www/clients/N
-

On doit ajouter à httpd.conf :

+

On doit ajouter à httpd.conf :

RewriteEngine on RewriteMap lowercase int:tolower -# définit le fichier de correspondances +# définit le fichier de correspondances RewriteMap vhost "txt:/www/conf/vhost.map" # on s'occupe des alias comme ci-dessus RewriteCond "%{REQUEST_URI}" "!^/icons/" RewriteCond "%{REQUEST_URI}" "!^/cgi-bin/" RewriteCond "${lowercase:%{SERVER_NAME}}" "^(.+)$" -# on effectue ici la remise en correspondance à base de fichier +# on effectue ici la remise en correspondance à base de fichier RewriteCond "${vhost:%1}" "^(/.*)$" RewriteRule "^/(.*)$" "%1/docs/$1" RewriteCond "%{REQUEST_URI}" "^/cgi-bin/" RewriteCond "${lowercase:%{SERVER_NAME}}" "^(.+)$" RewriteCond "${vhost:%1}" "^(/.*)$" -RewriteRule "^/(.*)$" "%1/cgi-bin/$1" [H=cgi-script] +RewriteRule "^/cgi-bin/(.*)$" "%1/cgi-bin/$1" [H=cgi-script]