summaryrefslogtreecommitdiffstats
path: root/docs/manual
diff options
context:
space:
mode:
authorLucien Gentis <lgentis@apache.org>2010-12-29 16:43:54 +0100
committerLucien Gentis <lgentis@apache.org>2010-12-29 16:43:54 +0100
commit15c4eb2d4017d1152b4af5c6b609ac3d0ba84386 (patch)
treec09757442d3c06a8d22f4623826ccd8d8168235a /docs/manual
parent* Fix r1039304 and make the patch similar to the one proposed for (diff)
downloadapache2-15c4eb2d4017d1152b4af5c6b609ac3d0ba84386.tar.xz
apache2-15c4eb2d4017d1152b4af5c6b609ac3d0ba84386.zip
Updates.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1053655 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual')
-rw-r--r--docs/manual/env.xml.fr42
-rw-r--r--docs/manual/howto/cgi.xml.fr22
-rw-r--r--docs/manual/mod/core.xml.fr181
-rw-r--r--docs/manual/mod/mod_headers.xml2
-rw-r--r--docs/manual/mod/mod_headers.xml.fr52
-rw-r--r--docs/manual/new_features_2_4.xml.fr15
-rw-r--r--docs/manual/vhosts/details.xml.fr399
-rw-r--r--docs/manual/vhosts/examples.xml.fr53
-rw-r--r--docs/manual/vhosts/index.xml.fr3
-rw-r--r--docs/manual/vhosts/name-based.xml.fr83
10 files changed, 346 insertions, 506 deletions
diff --git a/docs/manual/env.xml.fr b/docs/manual/env.xml.fr
index 5508ca3833..ceaa626c41 100644
--- a/docs/manual/env.xml.fr
+++ b/docs/manual/env.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English revision : 1001639 -->
+<!-- English revision : 1053353 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -151,6 +151,15 @@
seront remplac&eacute;s par un caract&egrave;re "souslign&eacute;" quand ils seront
transmis aux scripts CGI et aux pages SSI.</li>
+ <li>Les contenus d'en-t&ecirc;tes HTTP transmis aux scripts de type
+ CGI ou autre via des variables d'environnement constituent un
+ cas particulier (voir plus loin). Leur nom est converti en
+ majuscules et seuls les tirets sont remplac&eacute;s par des
+ caract&egrave;res '_' ("soulign&eacute;") ; si le format du nom de l'en-t&ecirc;te
+ n'est pas valide, celui-ci est ignor&eacute;. Voir <a
+ href="#fixheader">plus loin</a> pour une solution de
+ contournement du probl&egrave;me.</li>
+
<li>La directive <directive
module="mod_env">SetEnv</directive> s'ex&eacute;cute assez tard au
cours du traitement de la requ&ecirc;te, ce qui signifie que des
@@ -449,6 +458,37 @@
<section id="examples">
<title>Exemples</title>
+ <section id="fixheader">
+ <title>Transmission du contenu d'en-t&ecirc;tes non valides aux scripts
+ CGI</title>
+
+ <p>Avec la version 2.4, Apache est plus strict avec la conversion
+ des en-t&ecirc;tes HTTP en variables d'environnement dans
+ <module>mod_cgi</module> et d'autres modules : dans les versions
+ pr&eacute;c&eacute;dentes, tout caract&egrave;re invalide dans les noms d'en-t&ecirc;tes
+ &eacute;tait tout simplement remplac&eacute; par un caract&egrave;re '_', ce qui
+ pouvait exposer &agrave; des attaques de type cross-site-scripting via
+ injection d'en-t&ecirc;tes (voir <a
+ href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues
+ du Web inhabituelles</a>, planche 19/20).</p>
+
+ <p>Si vous devez supporter un client qui envoie des en-t&ecirc;tes non
+ conformes et si ceux-ci ne peuvent pas &ecirc;tre corrig&eacute;s, il existe
+ une solution de contournement simple mettant en jeu les modules
+ <module>mod_setenvif</module> et <module>mod_header</module>,
+ et permettant de prendre en compte ces en-t&ecirc;tes :</p>
+
+<example><pre>
+#
+# L'exemple suivant montre comment prendre en compte un en-t&ecirc;te
+# Accept_Encoding non conforme envoy&eacute; par un client.
+#
+SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
+RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
+</pre></example>
+
+ </section>
+
<section id="misbehaving">
<title>Modification du comportement protocolaire face &agrave; des clients
r&eacute;agissant de mani&egrave;re non conforme</title>
diff --git a/docs/manual/howto/cgi.xml.fr b/docs/manual/howto/cgi.xml.fr
index f78b069c36..38b9e26466 100644
--- a/docs/manual/howto/cgi.xml.fr
+++ b/docs/manual/howto/cgi.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1031597 -->
+<!-- English Revision : 1053353 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -381,10 +381,6 @@
<p>Assurez-vous qu'il s'agit bien du chemin correct vers
l'interpr&eacute;teur.</p>
- <p>De plus, si votre programme CGI d&eacute;pend d'autres <a
- href="#env">variables d'environnement</a>, vous devrez vous
- assurer qu'elles lui sont bien transmises par Apache.</p>
-
<note type="warning">
Lors de l'&eacute;dition de scripts CGI sous Windows, il se peut que des
caract&egrave;res de fin de ligne soient ajout&eacute;s au chemin de
@@ -395,6 +391,22 @@
faisant partie du nom de fichier de l'interpr&eacute;teur.
</note>
+ </section>
+
+ <section id="missingenv">
+ <title>Variables d'environnement manquantes</title>
+
+ <p>Si votre programme CGI d&eacute;pend de <a href="#env">variables
+ d'environnement</a> non standards, vous devrez vous assurez que
+ ces variables lui sont bien transmises par Apache.</p>
+
+ <p>Lorsque des en-t&ecirc;tes HTTP ne sont pas transmis &agrave;
+ l'environnement, assurez-vous qu'ils sont bien format&eacute;s selon la
+ <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, section
+ 4.2 : les noms d'en-t&ecirc;tes doivent commencer par une lettre,
+ elle-m&ecirc;me suivie de lettres, chiffres ou traits d'union. Tout
+ en-t&ecirc;te dont le nom viole cette r&egrave;gle sera ignor&eacute;.</p>
+
</section>
<section id="syntaxerrors">
diff --git a/docs/manual/mod/core.xml.fr b/docs/manual/mod/core.xml.fr
index d09db31a1b..2546a38070 100644
--- a/docs/manual/mod/core.xml.fr
+++ b/docs/manual/mod/core.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1052419 -->
+<!-- English Revision : 1053375 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -677,7 +677,7 @@ host</context>
</indent>
&lt;/Directory&gt;<br />
<br />
- &lt;Directory /home/&gt;<br />
+ &lt;Directory /home&gt;<br />
<indent>
AllowOverride FileInfo<br />
</indent>
@@ -2091,11 +2091,9 @@ possible depuis les versions 2.3.2 et sup&eacute;rieures d'Apache httpd</compati
est &eacute;l&eacute;v&eacute;, plus nombreux seront les processus serveur en attente de
requ&ecirc;tes de la part de clients inactifs.</p>
- <p>Dans un contexte de serveur virtuel &agrave; base de nom, c'est le d&eacute;lai
- du premier serveur virtuel d&eacute;fini (le serveur par d&eacute;faut) parmi un
- ensemble de directives <directive
- module="core">NameVirtualHost</directive> qui sera utilis&eacute;. Les
- autres valeurs seront ignor&eacute;es.</p>
+ <p>Dans un contexte de serveur virtuel &agrave; base de nom, c'est
+ la valeur de la paire adresse IP/port du serveur virtuel qui
+ correspond le mieux qui sera utilis&eacute;e.</p>
</usage>
</directivesynopsis>
@@ -2363,8 +2361,7 @@ requ&ecirc;te HTTP</description>
<note type="warning"><title>Avertissement</title>
<p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
cette directive est extraite du serveur virtuel par d&eacute;faut (le
- premier de la liste) pour lequel la connexion correspondait &agrave; la
- directive <directive>NameVirtualHost</directive>.</p>
+ premier de la liste) pour la paire adresse IP/port.</p>
</note>
</usage>
@@ -2410,10 +2407,9 @@ requ&ecirc;te HTTP</description>
<note type="warning"><title>Avertissement</title>
<p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
cette directive est extraite du serveur virtuel par d&eacute;faut (le
- premier de la liste) pour lequel la connexion correspondait &agrave; la
- directive <directive>NameVirtualHost</directive>.</p>
+ premier de la liste) pour lequel la paire adresse IP/port
+ correspond le mieux.</p>
</note>
-
</usage>
</directivesynopsis>
@@ -2457,8 +2453,8 @@ HTTP</description>
<note type="warning"><title>Avertissement</title>
<p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
cette directive est extraite du serveur virtuel par d&eacute;faut (le
- premier de la liste) pour lequel la connexion correspondait &agrave; la
- directive <directive>NameVirtualHost</directive>.</p>
+ premier de la liste) pour lequel la paire adresse IP/port
+ correspond le mieux.</p>
</note>
</usage>
@@ -3083,7 +3079,7 @@ verrou pour tous les mutex ou seulement les mutex sp&eacute;cifi&eacute;s</descr
sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
<note type="warning"><title>S&eacute;curit&eacute;</title>
- <p>Il est d&eacute;conseill&eacute; d'<em>&eacute;viter</em> de placer les fichiers mutex
+ <p>Il est conseill&eacute; d'<em>&eacute;viter</em> de placer les fichiers mutex
dans un r&eacute;pertoire o&ugrave; tout le monde peut &eacute;crire comme
<code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
par d&eacute;ni de service et emp&ecirc;cher le serveur de d&eacute;marrer en cr&eacute;ant un
@@ -3175,86 +3171,15 @@ nom</description>
<usage>
-<p>Une seule directive <directive>NameVirtualHost</directive> permet
-d'identifier un ensemble de serveurs virtuels identiques que le serveur
-va s&eacute;lectionner en fonction du <em>nom d'h&ocirc;te</em> sp&eacute;cifi&eacute; par le
-client. La directive <directive>NameVirtualHost</directive> est
-obligatoire si vous souhaitez configurer des <a
-href="../vhosts/">serveurs virtuels &agrave; base de nom</a>.</p>
-
-<p>Cette directive, ainsi que les directives <directive
->VirtualHost</directive> correspondantes, <em>doit</em> comporter un
-num&eacute;ro de port si le serveur supporte les connexions HTTP et HTTPS.</p>
-
-<p>Bien que <var>adresse</var> puisse contenir un nom d'h&ocirc;te, il est
-recommand&eacute; d'utiliser plut&ocirc;t une adresse IP ou un nom d'h&ocirc;te avec
-caract&egrave;res g&eacute;n&eacute;riques. Une directive NameVirtualHost contenant des
-caract&egrave;res g&eacute;n&eacute;riques ne peut correspondre qu'&agrave; des serveurs virtuels
-qui contiennent aussi des caract&egrave;res g&eacute;n&eacute;riques dans leur argument.</p>
-
-<p>Dans les cas o&ugrave; un pare-feu ou autre mandataire re&ccedil;oit les requ&ecirc;tes
-et les redirige sous une adresse IP diff&eacute;rente vers le serveur, vous
-devez sp&eacute;cifier l'adresse IP de l'interface physique de la machine qui
-va servir les requ&ecirc;tes.</p>
-
-<p>Dans l'exemple ci-dessous, les requ&ecirc;tes re&ccedil;ues sur l'interface
-192.0.2.1 et le port 80 ne vont d&eacute;clencher une s&eacute;lection que parmi les
-deux premiers serveurs virtuels. Les requ&ecirc;tes re&ccedil;ues sur le port 80 et
-sur toute interface ne vont d&eacute;clencher une s&eacute;lection que parmi les
-troisi&egrave;me et quatri&egrave;me serveurs virtuels. D'une mani&egrave;re g&eacute;n&eacute;rale,
-lorsque l'interface ne constitue pas un crit&egrave;re important de s&eacute;lection,
-la valeur "*:80" suffit pour les directives NameVirtualHost et
-VirtualHost.</p>
-
-<example>
- NameVirtualHost 192.0.2.1:80<br />
- NameVirtualHost *:80<br /><br />
-
- &lt;VirtualHost 192.0.2.1:80&gt;<br />
- &nbsp; ServerName namebased-a.example.com<br />
- &lt;/VirtualHost&gt;<br />
- <br />
- &lt;VirtualHost 192.0.2.1:80&gt;<br />
- &nbsp; Servername namebased-b.example.com<br />
- &lt;/VirtualHost&gt;<br />
- <br />
- &lt;VirtualHost *:80&gt;<br />
- &nbsp; ServerName namebased-c.example.com <br />
- &lt;/VirtualHost&gt;<br />
- <br />
- &lt;VirtualHost *:80&gt;<br />
- &nbsp; ServerName namebased-d.example.com <br />
- &lt;/VirtualHost&gt;<br />
- <br />
-
- </example>
-
- <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur
- virtuel correspondant &agrave; l'adresse IP qui sera utilis&eacute;.</p>
-
- <p>Les adresses IPv6 doivent &ecirc;tre entour&eacute;es de crochets, comme dans
- l'exemple suivant :</p>
-
- <example>
- NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080
- </example>
-
-
-
- <note><title>Argument de la directive <directive
- type="section">VirtualHost</directive></title>
- <p>Notez que l'argument de la directive <directive
- type="section">VirtualHost</directive> doit &ecirc;tre identique &agrave;
- l'argument de la directive <directive
- >NameVirtualHost</directive>.</p>
-
- <example>
- NameVirtualHost 192.0.2.2:80<br />
- &lt;VirtualHost 192.0.2.2:80&gt;<br />
- # ...<br />
- &lt;/VirtualHost&gt;<br />
- </example>
- </note>
+ <p>Avant la version 2.3.11, il &eacute;tait n&eacute;cessaire de d&eacute;finir une
+ directive <directive>NameVirtualHost</directive> pour indiquer au
+ serveur qu'une paire adresse IP/port particuli&egrave;re pouvait &ecirc;tre
+ utilis&eacute;e comme serveur virtuel &agrave; base de nom. Depuis la version
+ 2.3.11, chaque fois qu'une paire adresse IP/port est utilis&eacute;e dans
+ plusieurs serveurs virtuels, l'h&eacute;bergement virtuel &agrave; base de nom est
+ automatiquement activ&eacute; pour cette adresse.</p>
+
+ <p>Cette directive n'a actuellement plus aucun effet.</p>
</usage>
<seealso><a href="../vhosts/">Documentation sur les serveurs
@@ -3387,11 +3312,12 @@ host</context>
<code>-</code> est supprim&eacute;e de la liste des options courantes de la
m&ecirc;me mani&egrave;re.</p>
- <note type="warning"><title>Avertissement</title>
+ <note><title>Note</title>
<p>M&eacute;langer des <directive>Options</directive> avec <code>+</code>
ou <code>-</code> avec des <directive>Options</directive> sans
<code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
- peut r&eacute;sulter en des comportements inattendus.</p>
+ la v&eacute;rification de la syntaxe au cours du d&eacute;marrage du serveur fera
+ &eacute;chouer ce dernier.</p>
</note>
<p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
@@ -3869,7 +3795,6 @@ le serveur HTTP Apache</a></seealso>
du serveur HTTP Apache</a></seealso>
<seealso><directive module="core">UseCanonicalName</directive></seealso>
<seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
-<seealso><directive module="core">NameVirtualHost</directive></seealso>
<seealso><directive module="core">ServerAlias</directive></seealso>
</directivesynopsis>
@@ -4382,7 +4307,8 @@ d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
pour un document h&eacute;berg&eacute; par un serveur virtuel particulier, il
applique les directives de configuration rassembl&eacute;es dans la section
<directive type="section">VirtualHost</directive>. <var>adresse
- IP</var> peut &ecirc;tre :</p>
+ IP</var> peut &ecirc;tre une des entit&eacute;s suivantes, &eacute;ventuellement suivies
+ d'un caract&egrave;re ':' et d'un num&eacute;ro de port (ou *) :</p>
<ul>
<li>L'adresse IP du serveur virtuel ;</li>
@@ -4390,18 +4316,16 @@ d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
<li>Un nom de domaine enti&egrave;rement qualifi&eacute; correspondant &agrave;
l'adresse IP du serveur virtuel (non recommand&eacute;) ;</li>
- <li>Le caract&egrave;re <code>*</code>, qui n'est utilis&eacute; qu'en
- combinaison avec <code>NameVirtualHost *</code> pour intercepter
- toutes les adresses IP ; ou</li>
+ <li>Le caract&egrave;re <code>*</code>, qui agit comme un
+ caract&egrave;re g&eacute;n&eacute;rique, et correspond &agrave; toute adresse IP.</li>
+
+ <li>La cha&icirc;ne <code>_default_</code>, dont la signification est
+ identique &agrave; celle du caract&egrave;re <code>*</code></li>
- <li>La cha&icirc;ne de caract&egrave;res <code>_default_</code>, qui n'est
- utilis&eacute;e qu'avec l'h&eacute;bergement virtuel &agrave; base d'adresse IP pour
- intercepter les adresses IP qui ne correspondent &agrave; aucun serveur
- virtuel.</li>
</ul>
<example><title>Exemple</title>
- &lt;VirtualHost 10.1.2.3&gt;<br />
+ &lt;VirtualHost 10.1.2.3:80&gt;<br />
<indent>
ServerAdmin webmaster@host.example.com<br />
DocumentRoot /www/docs/host.example.com<br />
@@ -4419,7 +4343,7 @@ d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
:</p>
<example>
- &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]&gt;<br />
+ &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;<br />
<indent>
ServerAdmin webmaster@host.example.com<br />
DocumentRoot /www/docs/host.example.com<br />
@@ -4445,25 +4369,7 @@ d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
dans la liste des adresses pr&eacute;cis&eacute;es par la directive <directive
module="mpm_common">Listen</directive>.</p>
</note>
-
- <p>Avec l'h&eacute;bergement virtuel &agrave; base d'adresse IP, on peut utiliser
- le nom sp&eacute;cial <code>_default_</code>, auquel cas le serveur virtuel
- consid&eacute;r&eacute; interceptera toute adresse IP qui n'est pas explicitement
- associ&eacute;e &agrave; un autre serveur virtuel. En l'absence de serveur virtuel
- associ&eacute; &agrave; <code>_default_</code>, et si l'adresse IP demand&eacute;e ne
- correspond &agrave; aucun serveur virtuel, c'est la configuration du
- serveur "principal" qui sera utilis&eacute;e, c'est &agrave; dire l'ensemble des
- d&eacute;finitions situ&eacute;es en dehors de toute section VirtualHost.</p>
-
- <p>Vous pouvez sp&eacute;cifier <code>:port</code> pour modifier le port du
- serveur virtuel. S'il n'est pas sp&eacute;cifi&eacute;, sa valeur par d&eacute;faut
- correspond &agrave; celle qui est d&eacute;finie par la derni&egrave;re directive
- <directive module="mpm_common">Listen</directive> du serveur
- principal. Vous pouvez aussi sp&eacute;cifier <code>:*</code> pour accepter
- tous les ports associ&eacute;s &agrave; l'adresse du serveur virtuel (c'est une
- configuration recommand&eacute;e lorsqu'on utilise
- <code>_default_</code>).</p>
-
+
<p>Tout bloc <directive
type="section">VirtualHost</directive> doit comporter une directive
<directive module="core">ServerName</directive>. Dans le cas
@@ -4471,10 +4377,23 @@ d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
<directive module="core">ServerName</directive> issue de la
configuration du serveur principal.</p>
- <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur
- virtuel correspondant &agrave; l'adresse IP qui sera utilis&eacute;. Par
- cons&eacute;quent, le premier serveur virtuel d&eacute;fini est le serveur virtuel
- par d&eacute;faut.</p>
+ <p>A l'arriv&eacute;e d'une requ&ecirc;te, le serveur tente de la
+ faire prendre en compte par la section <directive
+ type="section">VirtualHost</directive> qui correspond le mieux en ne
+ se basant que sur la paire adresse IP/port. Les cha&icirc;nes sans
+ caract&egrave;res g&eacute;n&eacute;riques l'emportent sur celles qui en contiennent. Si
+ aucune correspondance du point de vue de l'adresse IP/port n'est
+ trouv&eacute;e, c'est la configuration du serveur "principal" qui sera
+ utilis&eacute;e.</p>
+
+ <p>Si plusieurs serveurs virtuels correspondent du point de vue de
+ l'adresse IP/port, le serveur s&eacute;lectionne celui qui correspond le
+ mieux du point de vue du nom d'h&ocirc;te de la requ&ecirc;te. Si aucune
+ correspondance du point de vue du nom d'h&ocirc;te n'est trouv&eacute;e, c'est le
+ premier serveur virtuel dont l'adresse IP/port correspond qui sera
+ utilis&eacute;. Par voie de cons&eacute;quence, le premier serveur virtuel
+ comportant une certaine paire adresse IP/port est le serveur virtuel
+ par d&eacute;faut pour cette paire adresse IP/port.</p>
<note type="warning"><title>S&eacute;curit&eacute;</title>
<p>Voir le document sur les <a
diff --git a/docs/manual/mod/mod_headers.xml b/docs/manual/mod/mod_headers.xml
index 5b5076fdce..db3c64e5c7 100644
--- a/docs/manual/mod/mod_headers.xml
+++ b/docs/manual/mod/mod_headers.xml
@@ -299,8 +299,8 @@ headers</description>
<var>header</var> [<var>value</var>] [early|env=[!]<var>variable</var>]</syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
-<compatibility>Default condition was temporarily changed to "always" in 2.3.9 and 2.3.10</compatibility>
<override>FileInfo</override>
+<compatibility>Default condition was temporarily changed to "always" in 2.3.9 and 2.3.10</compatibility>
<usage>
<p>This directive can replace, merge or remove HTTP response
diff --git a/docs/manual/mod/mod_headers.xml.fr b/docs/manual/mod/mod_headers.xml.fr
index 12815f928c..675b13f2af 100644
--- a/docs/manual/mod/mod_headers.xml.fr
+++ b/docs/manual/mod/mod_headers.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1031670 -->
+<!-- English Revision : 1053526 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -328,8 +328,8 @@ tardif</title>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
-<compatibility>La condition par d&eacute;faut passe de "onsuccess" &agrave; "always" &agrave;
-partir de la version 2.3.9</compatibility>
+<compatibility>La condition par d&eacute;faut est temporairement pass&eacute;e
+&agrave; "always" dans les version 2.3.9 et 2.3.10</compatibility>
<usage>
<p>Cette directive permet de remplacer, fusionner, ou
@@ -338,20 +338,38 @@ partir de la version 2.3.9</compatibility>
s'ex&eacute;cutent, ce qui permet la modification des en-t&ecirc;tes
sortants.</p>
- <p>A partir de la version 2.3.9, la condition par d&eacute;faut est
- "always", ce qui implique que cette directive agit sans tenir compte
- du code d'&eacute;tat de la r&eacute;ponse. Dans les versions 2.3.8 et
- ant&eacute;rieures, "onsuccess" &eacute;tait la condition par d&eacute;faut, ce qui
- impliquait que les en-t&ecirc;tes n'&eacute;taient modifi&eacute;s que pour les r&eacute;ponses
- avec code d'&eacute;tat <code>2<var>xx</var></code>.</p>
-
- <p>Une valeur effective <code>always</code> peut &ecirc;tre n&eacute;cessaire
- pour forcer la d&eacute;finition des en-t&ecirc;tes par certains modules internes
- (tels que <module>mod_cgi</module>), m&ecirc;me dans le cas de r&eacute;ponses
- positives, et doit toujours &ecirc;tre pr&eacute;sente pour modifier les r&eacute;ponses avec un code
- d'&eacute;tat autre que <code>2<var>xx</var></code>, comme les redirections
- ou les erreurs clients.</p>
-
+ <p>L'argument optionnel <var>condition</var> permet de d&eacute;terminer
+ sur quelle table interne d'en-t&ecirc;tes de r&eacute;ponses cette directive va
+ op&eacute;rer. D'autres composants du serveur peuvent avoir stock&eacute; leurs
+ en-t&ecirc;tes de r&eacute;ponses dans la table correspondant &agrave;
+ <code>onsuccess</code> ou dans celle correspondant &agrave;
+ <code>always</code>. Dans ce contexte, "Always" fait r&eacute;f&eacute;rence au
+ choix d'envoyer les en-t&ecirc;tes que vous ajoutez aux r&eacute;ponses, qu'elle
+ soient avec succ&egrave;s ou &eacute;chou&eacute;es ; par contre, si votre action est une
+ fonction d'un en-t&ecirc;te existant, vous devrez lire la documentation de
+ mani&egrave;re plus approfondie car dans ce cas, les choses se compliquent.</p>
+
+ <p>Vous pouvez avoir &agrave; changer la valeur par d&eacute;faut
+ <code>onsuccess</code> en <code>always</code> dans des circonstances
+ similaires &agrave; celles expos&eacute;es plus loin. Notez aussi que la r&eacute;p&eacute;tition
+ de cette directive avec les deux conditions peut &ecirc;tre pertinente
+ dans certains sc&eacute;narios, car <code>always</code> n'englobe pas
+ <code>onsuccess</code> en ce qui concerne les en-t&ecirc;tes existants :</p>
+
+ <ul>
+ <li>Vous ajoutez un en-t&ecirc;te &agrave; une r&eacute;ponse &eacute;chou&eacute;e (non-2xx),
+ une redirection par exemple, et dans ce cas, seule la table
+ correspondant &agrave; <code>always</code> est utilis&eacute;e dans la r&eacute;ponse
+ d&eacute;finitive.</li>
+ <li>Vous modifiez ou supprimez un en-t&ecirc;te g&eacute;n&eacute;r&eacute; par un script
+ CGI, et dans ce cas, les scripts CGI sont dans la table
+ correspondant &agrave; <code>always</code> et non dans la table par
+ d&eacute;faut.</li>
+ <li>Vous modifiez ou supprimez un en-t&ecirc;te g&eacute;n&eacute;r&eacute; par tel ou tel
+ composant du serveur, mais cet en-t&ecirc;te n'est pas trouv&eacute; par la
+ condition par d&eacute;faut <code>onsuccess</code>.</li>
+ </ul>
+
<p>L'action que cette directive provoque est d&eacute;termin&eacute;e par le
premier argument (ou par le second argument si une
<var>condition</var> est sp&eacute;cifi&eacute;e). Il peut prendre
diff --git a/docs/manual/new_features_2_4.xml.fr b/docs/manual/new_features_2_4.xml.fr
index 7688bf6b8e..0d70c283d4 100644
--- a/docs/manual/new_features_2_4.xml.fr
+++ b/docs/manual/new_features_2_4.xml.fr
@@ -3,7 +3,7 @@
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision : 1037335 -->
+<!-- English Revision : 1053353 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
@@ -126,10 +126,21 @@ serveur HTTP Apache</title>
HTTP sans interf&eacute;rer avec l'authentification et l'autorisation.</dd>
<dt><module>mod_include</module></dt>
-
<dd>Support de l'attribut 'onerror' dans un &eacute;l&eacute;ment 'include',
permettant de servir un message d'erreur personnalis&eacute; &agrave; la place
du message d'erreur par d&eacute;faut.</dd>
+
+ <dt><module>mod_cgi</module>, <module>mod_include</module>,
+ <module>mod_isapi</module>, ...</dt>
+ <dd>La traduction des en-t&ecirc;tes en variables d'environnement est
+ plus stricte qu'avant, ce qui permet de diminuer l'exposition aux attaques
+ de type cross-site-scripting via injection d'en-t&ecirc;tes. Les
+ en-t&ecirc;tes contenant des caract&egrave;res invalides (comme les caract&egrave;res
+ de soulignement) sont maintenant ignor&eacute;s. Le document <a
+ href="env.html">Les variables d'environnement dans Apache</a>
+ pr&eacute;sentent quelques pistes pour contourner ce probl&egrave;me avec les
+ clients anciens qui n&eacute;cessitent de tels en-t&ecirc;tes (Ceci affecte
+ tous les modules qui utilisent ces variables d'environnement).</dd>
</dl>
</section>
diff --git a/docs/manual/vhosts/details.xml.fr b/docs/manual/vhosts/details.xml.fr
index 4e8faf5df0..b7150ea5d5 100644
--- a/docs/manual/vhosts/details.xml.fr
+++ b/docs/manual/vhosts/details.xml.fr
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 420990:1053231 (outdated) -->
+<!-- English Revision: 1053231 -->
<!-- French translation by Vincent Deffontaines, review by alain B -->
<!-- Updated by Lucien Gentis -->
@@ -28,160 +28,95 @@
<summary>
- <p>Le code gérant les serveurs virtuels a été réécrit à partir de
- zéro dans <strong>Apache 1.3</strong>. Ce document vise à expliquer
- dans le détail comment Apache procède lors du choix de l'utilisation
- d'un serveur virtuel en fonction d'une requête reçue. L'apparition
- de la directive <directive module="core">NameVirtualHost</directive>
- a rendu beaucoup plus facile et plus sûre la configuration des
- serveurs virtuels par rapport aux versions précédant la 1.3.</p>
+ <p>Ce document vise à expliquer dans le détail comment le serveur
+ HTTP Apache procède lors du choix de l'utilisation
+ d'un serveur virtuel en fonction d'une requête reçue.</p>
- <p>Si vous voulez juste <cite>que ça marche</cite> sans en
- comprendre le fonctionnement, voici <a href="examples.html">quelques
- exemples</a>.</p>
+ <p>Il est recommandé de lire la documentation<a href="name-based.html#namevip">
+ Serveurs virtuels à base de nom et serveurs virtuels à base
+ d'adresse IP</a> pour déterminer quel type de serveur virtuel nous
+ convient le mieux, puis de lire les documentations <a
+ href="name-based.html">serveurs virtuels à base de nom</a> ou <a
+ href="ip-based.html">serveurs virtuels à base d'adresse IP</a>, et enfin
+ d'étudier <a href="examples.html">quelques exemples</a>.</p>
+
+ <p>Si vous voulez entrer dans les détails, vous pouvez revenir vers
+ cette page.</p>
</summary>
-<section id="configparsing"><title>Interprétation des fichiers
-de configuration</title>
+<seealso><a href="ip-based.html">Support des serveurs virtuels à base
+d'adresse IP</a></seealso>
+<seealso><a href="name-based.html">Support des serveurs virtuels à base
+de nom</a></seealso>
+<seealso><a href="examples.html">Exemples de serveurs virtuels pour une
+configuration courante</a></seealso>
+<seealso><a href="mass.html">Hébergement virtuel de masse configuré
+dynamiquement</a></seealso>
+
+
+<section id="configparsing"><title>Fichier de configuration</title>
<p>Un <em>serveur principal (main_server)</em> contient toutes
les définitions qui apparaissent en dehors des sections
- <code>&lt;VirtualHost&gt;</code>. Les serveurs virtuels, aussi
+ <code>&lt;VirtualHost&gt;</code>.</p>
+
+ <p>Les serveurs virtuels, aussi
appelés <em>vhosts</em> (pour virtual hosts), sont définis par les
sections <directive type="section" module="core">VirtualHost</directive>.</p>
- <p>Les directives
- <directive module="mpm_common">Listen</directive>,
- <directive module="core">ServerName</directive>,
- <directive module="core">ServerPath</directive>,
- et <directive module="core">ServerAlias</directive>
- peuvent être placées n'importe où dans le cadre de définition d'un
- serveur. Cependant, chaque fois que l'une d'elles est lue, elle écrase
- ses instances précédentes (dans le contexte du même serveur).</p>
-
- <p>La valeur par défaut du champ <code>Listen</code> pour le serveur
- principal est de 80. Le serveur principal n'a pas de valeur par
- défaut pour <code>ServerPath</code> ni pour <code>ServerAlias</code>.
- La valeur par défaut de <code>ServerName</code> est déduite à partir
- de l'adresses IP du serveur.</p>
-
- <p>La directive Listen associée au serveur principal a deux utilités.
- La première détermine le port réseau sur lequel Apache va écouter.
- La deuxième spécifie le port qui sera utilisé dans les URIs absolus
- lors des redirections.</p>
-
- <p>À la différence du serveur principal, les ports des serveurs
- virtuels <em>n</em>'affectent <em>pas</em> les ports sur lesquels
- Apache se met à l'écoute.</p>
-
- <p>Chaque adresse incluse dans une directive <code>VirtualHost</code>
- peut disposer d'un port optionnel. Si le port n'est pas précisé, il
- prend par défaut la dernière valeur de <code>Listen</code> lue dans
- la configuration du serveur principal. Le port particulier
- <code>*</code> représente un joker qui correspond à tous les ports.
- L'ensemble des adresses (y compris les résultats multiples
+ <p>Chaque directive <code>VirtualHost</code> comporte une ou
+ plusieurs adresses et des ports optionnels.</p>
+
+ <p>Il est possible d'utiliser des noms d'hôtes dans la définition
+ d'un serveur virtuel, mais ils seront résolus en adresses IP au
+ démarrage du serveur, et si une résolution de nom échoue, cette
+ définition de serveur virtuel sera ignorée. Cette méthode est par
+ conséquent déconseillée.</p>
+
+ <p>L'adresse peut
+ être spécifiée sous la forme <code>*</code>, ce qui conviendra à la
+ requête si aucun autre serveur virtuel ne possède l'adresse IP
+ explicite correspondant à celle de la requête.</p>
+
+ <p>L'adresse qui apparaît dans la directive <code>VirtualHost</code>
+ peut être associée à un port optionnel. Si aucun port n'est
+ spécifié, il s'agit d'un port générique qui peut aussi être spécifié
+ comme <code>*</code>. Le port générique correspond à toutes les
+ valeurs de port.</p>
+
+ <p>(Il ne faut pas confondre les numéros de port sur lesquels Apache
+ est en écoute avec les numéros de port spécifiés dans la directive
+ <code>VirtualHost</code> ; ces derniers ne servent qu'à définir le
+ <code>serveur virtuel</code> qui sera sélectionné pour traiter la
+ requête. Pour définir les ports sur lesquels Apache est en écoute,
+ utilisez la directive <directive module="core">Listen</directive>).
+ </p>
+
+ <p>L'ensemble des adresses (y compris les résultats multiples
<code>A</code> issus des requêtes DNS) est appelé <em>jeu
d'adresses</em> du serveur virtuel.</p>
- <p>À moins qu'une directive
- <directive module="core">NameVirtualHost</directive> ne soit utilisée
- pour une adresse IP spécifique, le premier serveur virtuel avec
- cette adresse est considéré comme un <em>serveur virtuel par-IP</em>.
- L'adresse IP peut également prendre la valeur joker <code>*</code>.</p>
-
- <p>Dans les cas où l'on souhaite utiliser un <em>serveur virtuel
- par nom</em>, la directive <code>NameVirtualHost</code> <em>doit</em>
- apparaître avec l'adresse IP choisie. En d'autres termes, vous devez
- spécifier dans votre fichier de configuration l'adresse IP des noms
- de domaine (CNAME) de vos serveurs virtuels par nom au moyen de
- la directive <code>NameVirtualHost</code>.</p>
-
- <p>On peut utiliser plusieurs directives <code>NameVirtualHost</code>
- pour un groupe de directives <code>VirtualHost</code>, mais seule
- une directive <code>NameVirtualHost</code> doit être utilisée pour
- chaque couple IP:port donné.</p>
-
- <p>L'ordre d'apparition des directives <code>NameVirtualHost</code>
- et <code>VirtualHost</code> est sans importance, ce qui fait que
- les deux exemples suivants ont des effets identiques (seul l'ordre
- des directives <code>VirtualHost</code> pour <em>un</em> jeu
- d'adresses est important, voir ci-dessous)&nbsp;:</p>
-
-<table><tr>
-<td><example>
- NameVirtualHost 111.22.33.44<br />
- &lt;VirtualHost 111.22.33.44&gt;<br />
- # serveur A<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- &lt;VirtualHost 111.22.33.44&gt;<br />
- # serveur B<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- <br />
- NameVirtualHost 111.22.33.55<br />
- &lt;VirtualHost 111.22.33.55&gt;<br />
- # serveur C<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- &lt;VirtualHost 111.22.33.55&gt;<br />
- # serveur D<br />
- ...<br />
- &lt;/VirtualHost&gt;
-</example></td>
-<td><example>
- &lt;VirtualHost 111.22.33.44&gt;<br />
- # serveur A<br />
- &lt;/VirtualHost&gt;<br />
- &lt;VirtualHost 111.22.33.55&gt;<br />
- # serveur C<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- &lt;VirtualHost 111.22.33.44&gt;<br />
- # serveur B<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- &lt;VirtualHost 111.22.33.55&gt;<br />
- # serveur D<br />
- ...<br />
- &lt;/VirtualHost&gt;<br />
- <br />
- NameVirtualHost 111.22.33.44<br />
- NameVirtualHost 111.22.33.55<br />
- <br />
-</example></td>
-</tr></table>
-
-
- <p>(Il est conseillé d'adopter le choix de gauche pour faciliter
- la lisibilité des fichiers de configuration.)</p>
-
- <p>Après la lecture de la directive <code>VirtualHost</code>, le
- serveur virtuel se voit attribuer une valeur <code>Listen</code>
- par défaut qui est la valeur du port associé au premier nom spécifié
- dans sa directive <code>VirtualHost</code>.</p>
-
- <p>La liste complète des noms d'une directive <code>VirtualHost</code>
- est gérée exactement comme des <code>ServerAlias</code> (mais ne
- sont pas écrasés par d'autres <code>ServerAlias</code>) si tous
- les noms sont résolus dans ce jeu d'adresse. À noter que les états
- <code>Listen</code> de ce serveur virtuel sont sans incidence sur
- les ports attibués au jeu d'adresses.</p>
-
- <p>Pendant la phase d'initialisation, une liste de chaque adresse
- IP est générée et introduite dans une table de 'hash'. Si une
- adresse IP est utilisée dans une directive <code>NameVirtualHost</code>,
- cette liste contient les noms des serveurs virtuels pour cette
- adresse. Si aucun serveur virtuel n'est défini pour cette adresse,
- la directive <code>NameVirtualHost</code> est ignorée et un message
- est envoyé au journal d'erreurs. Quand un serveur virtuel par IP
- est utilisé, la table de 'hash' reste vide.</p>
-
- <p>La fonction de 'hash' étant rapide, le temps d'exécution d'un
- 'hash' sur une adresse IP lors d'une requête est minimale et
- quasiment imperceptible. De plus, la table est optimisée pour les
- adresses IP dont le dernier octet est le seul à changer.</p>
+ <p>Apache fait automatiquement sa sélection à partir de l'en-tête
+ HTTP <code>Host</code> fourni par le client, lorsque la
+ correspondance la plus exacte du point de vue adresse IP/port a lieu
+ pour plusieurs serveurs virtuels.</p>
+
+ <p>La directive <directive module="core">ServerName</directive> peut
+ apparaître en quelque endroit de la définition d'un serveur.
+ Cependant, chaque occurrence écrase la précédente (pour ce serveur).
+ Si aucune directive <code>ServerName</code> n'est spécifiée, le
+ serveur tente de déterminer le nom du serveur à partir de l'adresse
+ IP.</p>
+
+ <p>Le premier serveur virtuel à base de nom apparaissant dans le
+ fichier de configuration pour une paire IP:port donnée est
+ significatif car c'est lui qui sera utilisé pour toutes les requêtes
+ reçues sur cette adresse IP/port et pour laquelle aucun autre
+ serveur virtuel ne possède un ServerName ou un ServerAlias
+ correspondant. Il sera aussi utilisé pour toutes les connexions SSL
+ si le serveur ne supporte pas l'<glossary
+ ref="servernameindication">Indication du nom du serveur</glossary>.</p>
<p>Pour chaque serveur virtuel, diverses valeurs sont initialisées
par défaut. En particulier&nbsp;:</p>
@@ -242,79 +177,72 @@ de configuration</title>
<p>À la réception d'une requête, le serveur procède comme suit pour
déterminer quel serveur virtuel utiliser&nbsp;:</p>
- <section id="hashtable"><title>Vérification dans la table de hash</title>
+ <section id="hashtable"><title>Recherche de l'adresse IP</title>
- <p>Après que le client se soit connecté, l'adresse
- IP à laquelle le client s'est connecté est recherchée dans la
- table de hash IP interne.</p>
+ <p>Lors d'une première connexion sur une adresse/port, le serveur
+ recherche toutes les directives <code>VirtualHost</code> qui
+ possèdent la même adresse IP/port.</p>
- <p>Si la résolution de l'adresse IP n'aboutit pas (adresse IP non
- trouvée), la requête est servie par le serveur virtuel
- <code>_default_</code> s'il est défini pour le port correspondant
- à la requête. Sinon, elle est servie par le serveur principal.</p>
+ <p>S'il n'y a aucune correspondance exacte pour cette adresse/port,
+ la recherche s'effectue sur la valeur générique (<code>*</code>).</p>
- <p>Si l'adresse IP n'est pas trouvée dans la table de hash, la
- recherche du numéro de port peut aussi se terminer par une
- correspondance à un <code>NameVirtualHost *</code> qui est géré
- ensuite comme les autres serveurs virtuels par noms.</p>
-
- <p>Si une liste est bien trouvée dans la table pour l'adresse
- IP recherchée, l'étape suivante est de déterminer s'il s'agit
- d'un serveur virtuel par nom ou par IP.</p>
+ <p>Si aucune correspondance n'est enfin trouvée, la requête sera
+ servie par le serveur principal.</p>
+ <p>S'il existe des définitions <code>VirtualHost</code> pour
+ l'adresse IP, l'étape suivante consiste à déterminer si nous avons à
+ faire à un serveur virtuel à base de nom ou d'adresse IP.</p>
+
</section>
<section id="ipbased"><title>Serveur virtuel par IP</title>
- <p>Si l'entrée trouvée dispose d'une liste de noms vide, c'est
- qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix
- n'est plus à faire&nbsp;; la requête est servie par ce serveur virtuel.</p>
+ <p>Si une seule section <code>VirtualHost</code> présente la
+ meilleure correspondance avec la paire adresse IP/port, aucune
+ action n'est entreprise et la requête est
+ traitée par le serveur virtuel qui correspond.</p>
</section>
<section id="namebased"><title>Serveur virtuel par nom</title>
- <p>Si l'entrée trouvée correspond à un serveur virtuel par nom,
- la liste de noms contient au moins une structure de serveurs
- virtuels. Les serveurs virtuels se présentent dans cette liste
- dans le même ordre que la lecture des directives <code>VirtualHost</code>
- dans le fichier de configuration.</p>
-
- <p>Le premier serveur virtuel de cette liste (donc, le premier
- serveur virtuel du fichier de configuration
- attribué à l'adresse IP spécifiée)
- se voit attribuer la plus grande priorité, ce
- qui signifie que c'est lui qui traite les requêtes présentant un
- nom de serveur invalide ou ne présentant pas de champ
- <code>Host:</code> dans l'en-tête.</p>
-
- <p>Si un champ <code>Host:</code> est transmis dans l'en-tête de
- la requête, son occurrence est recherchée dans la liste et le
- premier serveur virtuel qui présente un <code>ServerName</code>
- ou un <code>ServerAlias</code> correspondant est choisi pour
- servir la requête. Il est possible que le champ <code>Host:</code>
- contienne un numéro de port, mais Apache utilise toujours le
+ <p>Si plusieurs sections <code>VirtualHost</code> présentent la
+ meilleure correspondance avec la paire adresse IP/port, le terme
+ "liste" dans les étapes suivantes fait référence à la liste des
+ serveurs virtuels qui correspondent, selon l'ordre dans lequel ils
+ apparaissent dans le fichier de configuration.</p>
+
+ <p>Si la connexion utilise SSL, si le serveur supporte l'<glossary
+ ref="servernameindication">Indication de nom de serveur</glossary>,
+ et si la négociation du client SSL inclut l'extension TLS dans le
+ nom d'hôte requis, alors ce nom d'hôte sera utilisé par la suite, tout
+ comme un en-tête <code>Host:</code> aurait été utilisé dans le cas
+ d'une connexion non-SSL. Si ces conditions ne sont pas réunies, le
+ premier serveur virtuel à base de nom dont l'adresse correspond sera
+ utilisé pour les connexions SSL. Ceci est important car c'est le
+ serveur virtuel qui détermine quel certificat le serveur va utiliser
+ pour la connexion.</p>
+
+ <p>Si la requête contient un en-tête <code>Host:</code>, on
+ recherche dans la liste le premier serveur virtuel dont le
+ <code>ServerName</code> ou le <code>ServerAlias</code> correspond,
+ et c'est celui-ci qui va traiter la requête. Un en-tête
+ <code>Host:</code> peut comporter un numéro de port mais Apache
+ l'ignore systématiquement et utilise toujours le
port sur lequel il a effectivement reçu la requête.</p>
- <p>Dans le cas où le client a envoyé une requête en HTTP/1.0 sans
- champ d'en-tête <code>Host:</code>, il est impossible de
- déterminer le serveur auquel le client veut se connecter&nbsp;; l'URI
- de la requête est recherché dans tous les <code>ServerPath</code>
- existants. Le premier chemin trouvé est utilisé et la requête est
- servie par le serveur virtuel correspondant.</p>
-
- <p>Si aucun serveur virtuel n'est trouvé, la requête est servie
- par le premier serveur virtuel qui écoute sur le port demandé et
- qui est sur la liste associée à l'adresse IP vers laquelle la
- requête a été envoyée (comme déjà précisé ci-avant).</p>
+ <p>Le premier serveur virtuel du fichier de configuration qui
+ possède l'adresse spécifiée est prioritaire et intercepte toutes les
+ requêtes à destination d'un nom de serveur inconnu, ou toute requête
+ sans en-tête <code>Host:</code> (comme les requêtes HTTP/1.0).</p>
</section>
<section id="persistent"><title>Connexions persistantes</title>
- <p>La recherche par adresse IP décrite ci-avant n'est faite
+ <p>La <em>recherche par adresse IP</em> décrite ci-avant n'est faite
qu'<em>une fois</em> pour chaque session TCP/IP, alors que la
- recherche par nom est réalisée pour <em>chaque</em> requête au
+ <em>recherche par nom</em> est réalisée pour <em>chaque</em> requête au
cours d'une connexion persistante (KeepAlive). En d'autres termes,
il est possible pour un client de faire des requêtes sur
différents serveurs virtuels par nom, au cours d'une unique
@@ -337,72 +265,43 @@ de configuration</title>
<section id="observations"><title>Observations</title>
<ul>
- <li>Les serveurs virtuels par nom et par IP n'interfèrent
- jamais entre eux. Les serveurs virtuels par IP ne sont joignables
- qu'au travers de leur(s) adresse(s) IP propre(s), et en aucun
- cas par une autre adresse. Les serveurs virtuels par nom
- ne sont accessibles que par leur(s) adresse(s) IP qui ne peuvent
- être définies qu'au moyen de la directive
- <code>NameVirtualHost</code>.</li>
-
- <li>Les vérifications sur <code>ServerAlias</code> et
- <code>ServerPath</code> ne sont jamais réalisées pour les
- serveurs virtuels par IP.</li>
-
- <li>L'ordre dans lequel sont agencés dans le fichier de
- configuration le serveur virtuel <code>_default_</code>, les
- serveurs virtuels par nom et par IP, et la directive
- <code>NameVirtualHost</code> est sans incidence sur le
- fonctionnement. Seul l'ordre des serveurs virtuels par nom
+ <li>La sélection d'un serveur virtuel en fonction de son nom est
+ un processus qui intervient après la sélection par le serveur du
+ serveur virtuel qui correspond le mieux du point de vue adresse
+ IP/port.</li>
+
+ <li>Si vous ne tenez pas compte de l'adresse IP à laquelle le
+ client s'est connecté, indiquez un caractère "*" comme adresse
+ pour tous les serveurs virtuels, et la sélection du serveur
+ virtuel en fonction du nom s'appliquera alors à tous les serveurs
+ virtuels définis.</li>
+
+ <li>Les vérifications sur <code>ServerName</code> et
+ <code>ServerAlias</code> ne sont jamais
+ réalisées pour les serveurs virtuels par IP.</li>
+
+ <li>Seul l'ordre des serveurs virtuels par nom
pour une adresse donnée a une importance. Le serveur virtuel
par nom qui est présent en premier dans la configuration se
voit attribué la priorité la plus haute pour les requêtes
arrivant sur son jeu d'adresses IP.</li>
- <li>Pour des raisons de sécurité, le numéro de port présenté
- dans le champ d'en-tête <code>Host:</code> n'est jamais utilisé
+ <li>Le numéro de port contenu dans l'en-tête <code>Host:</code> n'est jamais utilisé
pour les tests de correspondances. Apache ne prend en compte
que le numéro de port sur lequel le client a envoyé la requête.</li>
- <li>Si une directive <code>ServerPath</code> existe, et se
- trouve être préfixe d'une autre directive <code>ServerPath</code>
- qui apparaît plus loin dans la configuration, la première
- sera toujours utilisée et la deuxième jamais. (Ceci ne se
- produit que dans le cas où aucun champ <code>Host:</code>
- n'a été présenté par le client pour distinguer les deux.)</li>
-
- <li>Dans le cas où deux serveurs virtuels par IP ont une
- adresse en commun, le serveur virtuel qui apparaît en premier
- dans la configuration est toujours choisi. Ce genre de chose
- peut arriver par inadvertance. Le serveur envoie une alerte
- dans le journal d'erreurs si ce cas se présente.</li>
-
- <li>Le serveur virtuel <code>_default_</code> ne sert la requête
- que si aucun autre serveur virtuel travaillant sur l'adresse
- IP <em>et</em> le port demandés n'est trouvé. La requête n'est
- traitée que si le numéro de port qui a reçu la requête est
- associé au serveur virtuel <code>_default_</code> (qui par
- défaut, correspond à <code>Listen</code>). Un port joker peut
- être spécifié (<em>comme dans</em> <code>_default_:*</code>)
- pour récupérer les requêtes sur tous les ports ouverts. Ceci
- est également applicable aux serveurs virtuels
- <code>NameVirtualHost *</code>.</li>
+ <li>Si deux serveurs virtuels partagent la même adresse, la
+ sélection se fera implicitement sur le nom. Il s'agit d'une
+ nouvelle fonctionnalité de la version 2.3.11.</li>
<li>Le serveur principal ne sert les requêtes que
lorsque l'adresse IP et le port demandés par le client ne
correspondent à aucun serveur virtuel (y compris un serveur
- virtuel <code>_default_</code>). En d'autres termes, le serveur
+ virtuel <code>*</code>). En d'autres termes, le serveur
principal n'est utile que pour les combinaisons adresse/port
non spécifiées (sauf quand un serveur virtuel <code>_default_</code>
correspond au port).</li>
- <li>Ni les serveurs virtuels <code>_default_</code>, ni le
- serveur principal ne sont utilisés pour traiter une requête
- avec un champ d'en-tête <code>Host:</code> inconnu ou manquant
- lorsque l'adresse (et le port) de connexion correspondent à
- des serveurs virtuels par nom, par exemple, dans une directive
- <code>NameVirtualHost</code>.</li>
-
<li>Il ne faut jamais employer de noms DNS dans des directives
<code>VirtualHost</code>, car cela oblige le serveur a s'appuyer
sur le DNS au moment du démarrage. De plus, vous vous exposez
@@ -435,17 +334,7 @@ de configuration</title>
virtuels peuvent impacter le fonctionnement de tous les
serveurs virtuels.)</li>
- <li>Toujours regrouper les définitions <code>NameVirtualHost</code>
- et <code>VirtualHost</code> correspondantes
- dans la configuration pour une meilleure lisibilité.</li>
-
- <li>Éviter les <code>ServerPaths</code> qui sont préfixes
- d'autres <code>ServerPaths</code>. Si cela ne peut être évité,
- veillez à ce que le serveur virtuel contenant le préfixe le plus
- long (donc le plus précis) apparaisse dans le fichier de
- configuration avant le plus court. (<em>par exemple</em>,
- "ServerPath /abc" est à spécifier après "ServerPath /abc/def").</li>
- </ul>
+ </ul>
</section>
</manualpage>
diff --git a/docs/manual/vhosts/examples.xml.fr b/docs/manual/vhosts/examples.xml.fr
index 2a50fae2e0..0e8b1a3ad1 100644
--- a/docs/manual/vhosts/examples.xml.fr
+++ b/docs/manual/vhosts/examples.xml.fr
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1043126:1053231 (outdated) -->
+<!-- English Revision: 1053231 -->
<!-- French translation by Vincent Deffontaines, Alain B., review by -->
<!-- updated by Lucien Gentis -->
@@ -61,9 +61,6 @@
# Apache doit écouter sur le port 80<br />
Listen 80<br />
<br />
- # Toutes les adresses IP doivent répondre aux requêtes sur les
- # serveurs virtuels
- NameVirtualHost *:80<br />
<br />
&lt;VirtualHost *:80&gt;<br />
<indent>
@@ -99,17 +96,10 @@
<note>
<title>Note&nbsp;:</title>
- <p>Si vous le souhaitez, vous pouvez remplacer <code>*</code>
- par l'adresse IP du système. Dans ce cas, l'argument de
- <code>VirtualHost</code> <em>doit</em> correspondre à
- l'argument de <code>NameVirtualHost</code>&nbsp;:</p>
-
- <example>
- NameVirtualHost 172.20.30.40<br />
- <br />
- &lt;VirtualHost 172.20.30.40&gt;<br />
- # etc ...
- </example>
+ <p>Vous pouvez remplacer <code>*</code>
+ par l'adresse IP du système si vous ne souhaitez pas faire
+ opérer la sélection du serveur virtuel en fonction de la
+ paire adresse IP/port.</p>
<p>En général, il est commode d'utiliser <code>*</code> sur
les systèmes dont l'adresse IP n'est pas constante - par
@@ -152,9 +142,6 @@
ServerName server.example.com<br />
DocumentRoot /www/mainserver<br />
<br />
- # l'autre adresse <br />
- NameVirtualHost 172.20.30.50<br />
- <br />
&lt;VirtualHost 172.20.30.50&gt;<br />
<indent>
DocumentRoot /www/example.com<br />
@@ -203,9 +190,7 @@
<example>
<title>Configuration du serveur</title>
- NameVirtualHost 192.168.1.1<br />
- NameVirtualHost 172.20.30.40<br />
- <br />
+ <br />
&lt;VirtualHost 192.168.1.1 172.20.30.40&gt;<br />
<indent>
DocumentRoot /www/server1<br />
@@ -235,12 +220,10 @@
ports.</title>
<p>Vous disposez de plusieurs domaines pointant sur la même adresse
- IP et vous voulez également servir de multiples ports. Vous y
- parviendrez en définissant les ports dans la directive
- "NameVirtualHost". Si vous tentez d'utiliser &lt;VirtualHost
- name:port&gt; sans directive NameVirtualHost name:port, ou tentez
- d'utiliser la directive Listen, votre configuration ne fonctionnera
- pas.</p>
+ IP et vous voulez également servir de multiples ports. L'exemple
+ suivant montre que la sélection en fonction du nom intervient après
+ la sélection de la meilleure correspondance du point de vue adresse
+ IP/port.</p>
<example>
<title>Configuration du serveur</title>
@@ -248,9 +231,6 @@
Listen 80<br />
Listen 8080<br />
<br />
- NameVirtualHost 172.20.30.40:80<br />
- NameVirtualHost 172.20.30.40:8080<br />
- <br />
&lt;VirtualHost 172.20.30.40:80&gt;<br />
<indent>
ServerName www.example.com<br />
@@ -366,16 +346,15 @@
<section id="mixed"><title>Hébergements virtuels mixtes basé sur
les noms et sur IP</title>
- <p>Pour certaines adresses, des serveurs virtuels seront définis
- par nom, et pour d'autres, ils seront définis par IP.</p>
+ <p>Toute adresse indiquée comme argument d'une section VirtualHost
+ et n'apparaissant dans aucun autre serveur virtuel, fait de cette
+ section un serveur virtuel sélectionnable uniquement en fonction de
+ son adresse IP.</p>
<example>
<title>Configuration du serveur</title>
Listen 80<br />
- <br />
- NameVirtualHost 172.20.30.40<br />
- <br />
&lt;VirtualHost 172.20.30.40&gt;<br />
<indent>
DocumentRoot /www/example1<br />
@@ -556,8 +535,6 @@
ServerName www.example.com<br />
DocumentRoot /www/example.com<br />
<br />
- NameVirtualHost 172.20.30.40<br />
- <br />
&lt;VirtualHost 172.20.30.40 172.20.30.50&gt;<br />
<indent>
DocumentRoot /www/example.org<br />
@@ -599,8 +576,6 @@
<example>
<title>Configuration du serveur</title>
- NameVirtualHost 172.20.30.40<br />
- <br />
&lt;VirtualHost 172.20.30.40&gt;<br />
<indent>
# Serveur virtuel primaire<br />
diff --git a/docs/manual/vhosts/index.xml.fr b/docs/manual/vhosts/index.xml.fr
index 59c46db5f8..f57a35bfd4 100644
--- a/docs/manual/vhosts/index.xml.fr
+++ b/docs/manual/vhosts/index.xml.fr
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1042758:1053231 (outdated) -->
+<!-- English Revision: 1053231 -->
<!-- french translation by alain B, review by Vincent Deffontaines -->
<!-- Updated by Lucien Gentis -->
@@ -84,7 +84,6 @@
<ul>
<li><directive type="section"
module="core">VirtualHost</directive></li>
- <li><directive module="core">NameVirtualHost</directive></li>
<li><directive module="core">ServerName</directive></li>
<li><directive module="core">ServerAlias</directive></li>
<li><directive module="core">ServerPath</directive></li>
diff --git a/docs/manual/vhosts/name-based.xml.fr b/docs/manual/vhosts/name-based.xml.fr
index d0a4efd330..62f7c86333 100644
--- a/docs/manual/vhosts/name-based.xml.fr
+++ b/docs/manual/vhosts/name-based.xml.fr
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1044323:1053231 (outdated) -->
+<!-- English Revision: 1053231 -->
<!-- French translation by alain B, review by Vincent Deffontaines
updated by Lucien GENTIS -->
@@ -69,6 +69,13 @@
qui ne peuvent pas différencier des domaines autrement que
par des adresses IP séparées.</li>
</ul>
+
+ <p>La sélection du serveur virtuel en fonction du nom s'opère en
+ dehors de l'algorithme de sélection du serveur virtuel en fonction
+ de l'adresse IP, ce qui signifie que les recherches du point de vue
+ du nom du serveur ne s'effectuent que parmi le jeu de serveurs
+ virtuels pour lesquels la correspondance avec la paire adresse
+ IP/port est la plus exacte.</p>
</section>
<section id="alg"><title>Comment le serveur sélectionne-t-il le serveur
@@ -81,27 +88,26 @@ virtuel basé sur le nom approprié</title>
limitant aux candidats qui conviennent le mieux du point de vue IP.
La résolution basée sur IP est sans objet si l'on
utilise un caractère générique (*) pour l'adresse IP dans
- toutes les directives NameVirtualHost et VirtualHost.</p>
-
- <p>Lorsqu'une requête arrive, le serveur vérifie d'abord si elle
- utilise une adresse IP qui correspond exactement à une directive
- <directive module="core">NameVirtualHost</directive>. Si c'est le
- cas, il va ensuite rechercher toutes les sections <directive
- type="section" module="core">VirtualHost</directive> comportant une
- adresse IP correspondante, puis essaiera d'en trouver une dont la
- directive <directive module="core">ServerName</directive> ou
- <directive module="core" >ServerAlias</directive> correspond au nom
- d'hôte de la requête. S'il en trouve une, il utilisera la
- configuration associée au serveur correspondant.</p>
-
- <section id="defaultvhost"><title>Le serveur virtuel basé sur le nom
- par défaut pour une directive NameVirtualHost</title>
- <p>Si aucune directive ServerName ou ServerAlias correspondant au
- nom d'hôte de la requête n'est trouvée dans l'ensemble des serveurs
- virtuels correspondant à la directive NameVirtualHost, <strong>c'est
- le premier serveur virtuel de la liste de ceux qui
- correspondent à l'adresse IP</strong> qui sera utilisé.</p></section>
+ toutes les directives VirtualHost.</p>
+ <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de
+ section <directive type="section"
+ module="core">VirtualHost</directive> présentant la meilleure
+ (la plus exacte) correspondance avec la paire adresse IP/port
+ utilisée dans la requête. Si plusieurs serveurs virtuels possèdent
+ cette même paire adresse IP/port, Apache va ensuite comparer les
+ valeurs des directives <directive module="core"
+ >ServerName</directive> et <directive
+ >module="core">ServerAlias</directive> avec le nom de serveur
+ présent dans la requête.</p>
+
+ <section id="defaultvhost"><title>Le serveur virtuel à base de nom
+ par défaut pour une paire adresse IP/port</title>
+ <p>Si aucune directive ServerName ou ServerAlias ne correspond dans
+ la liste de serveurs virtuels présentant la meilleure correspondance
+ du point de vue adresse IP/port, c'est <strong>le premier serveur
+ virtuel de cette liste</strong> qui sera utilisé.</p></section>
+
</section>
@@ -114,42 +120,16 @@ virtuel basé sur le nom approprié</title>
<directivelist>
<directive module="core">DocumentRoot</directive>
- <directive module="core">NameVirtualHost</directive>
<directive module="core">ServerAlias</directive>
<directive module="core">ServerName</directive>
<directive module="core" type="section">VirtualHost</directive>
</directivelist>
</related>
- <p>Pour utiliser des serveurs virtuels par nom, vous devez
- désigner l'adresse IP (et si possible le port) sur le serveur
- devant accepter les requêtes qui doivent être redirigées en fonction
- du nom d'hôte. Cette
- configuration utilise la directive
- <directive module="core">NameVirtualHost</directive>. Dans un
- cas normal où n'importe quelle adresse IP peut être utilisée,
- vous pouvez ajouter <code>*</code> comme argument de la directive
- <directive module="core">NameVirtualHost</directive>. Si vous
- prévoyez d'utiliser de multiples ports (comme l'emploi de SSL),
- vous devez ajouter le port à cet argument tel que
- <code>*:80</code>.</p>
- <note><p>Notez que la simple mention d'une adresse
- IP dans une directive
- <directive module="core">NameVirtualHost</directive> ne suffit
- pas à faire <em>écouter</em> le serveur sur cette IP. Consultez
- <a href="../bind.html">Définition des adresses et ports qu'utilise
- Apache</a> pour plus
- de détails. Par ailleurs, chaque adresse IP spécifiée ici doit
- être associée avec une interface réseau sur le serveur.</p></note>
-
- <p>L'étape suivante est la création d'une section
+ <p>La première étape consiste à créer une section
<directive type="section" module="core">VirtualHost</directive>
- pour chacun des serveurs à créer. L'argument de la directive
- <directive type="section" module="core">VirtualHost</directive>
- doit être le même que celui de la directive
- <directive module="core">NameVirtualHost</directive>
- (dans le cas présent "*:80"). Dans chaque section
+ pour chacun des serveurs à définir. Dans chaque section
<directive type="section" module="core">VirtualHost</directive>,
vous devez définir au minimum une directive
<directive module="core">ServerName</directive> pour désigner
@@ -184,8 +164,6 @@ virtuel basé sur le nom approprié</title>
suivante à <code>httpd.conf</code>&nbsp;:</p>
<example>
- NameVirtualHost *:80<br />
- <br />
&lt;VirtualHost *:80&gt;<br />
<indent>
# Le premier serveur virtuel de la liste est aussi le
@@ -204,8 +182,7 @@ virtuel basé sur le nom approprié</title>
</example>
<p>Autrement, vous pouvez spécifiez une adresse IP explicite
- à la place de <code>*</code> dans les deux directives
- <directive module="core" >NameVirtualHost</directive> et
+ à la place de <code>*</code> dans la directive
<directive type="section" module="core" >VirtualHost</directive>.
Par exemple, cette méthode est utile si vous souhaitez faire
tourner quelques serveurs virtuels par nom sur une même adresse