summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorIgor Galić <igalic@apache.org>2010-12-29 17:17:40 +0100
committerIgor Galić <igalic@apache.org>2010-12-29 17:17:40 +0100
commit404e8b8ec7e3fc75f770a35ced4d6017c50639fb (patch)
tree4e785e768fcfa7de573761820641d2a9cb27a7e7 /docs
parentFix grammar. (diff)
downloadapache2-404e8b8ec7e3fc75f770a35ced4d6017c50639fb.tar.xz
apache2-404e8b8ec7e3fc75f770a35ced4d6017c50639fb.zip
update transformations
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1053664 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs')
-rw-r--r--docs/manual/env.html.fr38
-rw-r--r--docs/manual/howto/cgi.html.fr19
-rw-r--r--docs/manual/mod/core.html.de2
-rw-r--r--docs/manual/mod/core.html.fr172
-rw-r--r--docs/manual/mod/mod_headers.html.fr50
-rw-r--r--docs/manual/mod/mod_headers.xml.ja2
-rw-r--r--docs/manual/mod/mod_headers.xml.ko2
-rw-r--r--docs/manual/new_features_2_4.html.fr12
-rw-r--r--docs/manual/vhosts/details.html.fr394
-rw-r--r--docs/manual/vhosts/details.xml.meta2
-rw-r--r--docs/manual/vhosts/examples.html.fr53
-rw-r--r--docs/manual/vhosts/examples.xml.meta2
-rw-r--r--docs/manual/vhosts/index.html.fr3
-rw-r--r--docs/manual/vhosts/index.xml.meta2
-rw-r--r--docs/manual/vhosts/name-based.html.fr82
-rw-r--r--docs/manual/vhosts/name-based.xml.meta2
16 files changed, 330 insertions, 507 deletions
diff --git a/docs/manual/env.html.fr b/docs/manual/env.html.fr
index f2dbdce4c4..f619ee0bc1 100644
--- a/docs/manual/env.html.fr
+++ b/docs/manual/env.html.fr
@@ -136,6 +136,14 @@
seront remplacés par un caractère "sousligné" quand ils seront
transmis aux scripts CGI et aux pages SSI.</li>
+ <li>Les contenus d'en-tê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és par des
+ caractères '_' ("souligné") ; si le format du nom de l'en-tête
+ n'est pas valide, celui-ci est ignoré. Voir <a href="#fixheader">plus loin</a> pour une solution de
+ contournement du problème.</li>
+
<li>La directive <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code> s'exécute assez tard au
cours du traitement de la requête, ce qui signifie que des
directives telles que <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> et <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ne verront pas
@@ -410,6 +418,36 @@
<h2><a name="examples" id="examples">Exemples</a></h2>
+ <h3><a name="fixheader" id="fixheader">Transmission du contenu d'en-têtes non valides aux scripts
+ CGI</a></h3>
+
+
+ <p>Avec la version 2.4, Apache est plus strict avec la conversion
+ des en-têtes HTTP en variables d'environnement dans
+ <code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code> et d'autres modules : dans les versions
+ précédentes, tout caractère invalide dans les noms d'en-têtes
+ était tout simplement remplacé par un caractère '_', ce qui
+ pouvait exposer à des attaques de type cross-site-scripting via
+ injection d'en-tê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êtes non
+ conformes et si ceux-ci ne peuvent pas être corrigés, il existe
+ une solution de contournement simple mettant en jeu les modules
+ <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> et <code class="module"><a href="./mod/mod_header.html">mod_header</a></code>,
+ et permettant de prendre en compte ces en-têtes :</p>
+
+<div class="example"><pre>
+#
+# L'exemple suivant montre comment prendre en compte un en-tête
+# Accept_Encoding non conforme envoyé par un client.
+#
+SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
+RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
+</pre></div>
+
+
+
<h3><a name="misbehaving" id="misbehaving">Modification du comportement protocolaire face à des clients
réagissant de manière non conforme</a></h3>
diff --git a/docs/manual/howto/cgi.html.fr b/docs/manual/howto/cgi.html.fr
index aed7f8364f..3fd60e4e6a 100644
--- a/docs/manual/howto/cgi.html.fr
+++ b/docs/manual/howto/cgi.html.fr
@@ -365,9 +365,6 @@
<p>Assurez-vous qu'il s'agit bien du chemin correct vers
l'interpréteur.</p>
- <p>De plus, si votre programme CGI dépend d'autres <a href="#env">variables d'environnement</a>, vous devrez vous
- assurer qu'elles lui sont bien transmises par Apache.</p>
-
<div class="warning">
Lors de l'édition de scripts CGI sous Windows, il se peut que des
caractères de fin de ligne soient ajoutés au chemin de
@@ -378,6 +375,22 @@
faisant partie du nom de fichier de l'interpréteur.
</div>
+
+
+ <h3><a name="missingenv" id="missingenv">Variables d'environnement manquantes</a></h3>
+
+
+ <p>Si votre programme CGI dé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êtes HTTP ne sont pas transmis à
+ l'environnement, assurez-vous qu'ils sont bien formatés selon la
+ <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, section
+ 4.2 : les noms d'en-têtes doivent commencer par une lettre,
+ elle-même suivie de lettres, chiffres ou traits d'union. Tout
+ en-tête dont le nom viole cette règle sera ignoré.</p>
+
<h3><a name="syntaxerrors" id="syntaxerrors">Erreurs inhérentes au programme</a></h3>
diff --git a/docs/manual/mod/core.html.de b/docs/manual/mod/core.html.de
index e1699ef74c..6f3a4e32df 100644
--- a/docs/manual/mod/core.html.de
+++ b/docs/manual/mod/core.html.de
@@ -121,7 +121,7 @@ Protokolle</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Kompatibilität:</a></th><td>Verfügbar ab Apache 2.1.5</td></tr>
</table>
<p>Diese Direktive aktiviert betriebssystemspezifische Optimierungen
- für lauschende Sockets anhand des Protokolltyps. Die grundlegende
+ für lauschende Sockets anhand des Protokolltyps. Der grundlegende
Ansatz ist, dass der Kernel das Socket nicht an den Serverprozess
übergibt, bis entweder Daten verfügbar sind oder eine komplette
HTTP-Anfrage zwischengespeichert wurde. Derzeit werden
diff --git a/docs/manual/mod/core.html.fr b/docs/manual/mod/core.html.fr
index 1898f93d1b..50ae461ea9 100644
--- a/docs/manual/mod/core.html.fr
+++ b/docs/manual/mod/core.html.fr
@@ -702,7 +702,7 @@ sous-répertoires, et à leur contenu.</td></tr>
</span>
&lt;/Directory&gt;<br />
<br />
- &lt;Directory /home/&gt;<br />
+ &lt;Directory /home&gt;<br />
<span class="indent">
AllowOverride FileInfo<br />
</span>
@@ -2048,10 +2048,9 @@ possible depuis les versions 2.3.2 et supérieures d'Apache httpd</td></tr>
est élévé, plus nombreux seront les processus serveur en attente de
requêtes de la part de clients inactifs.</p>
- <p>Dans un contexte de serveur virtuel à base de nom, c'est le délai
- du premier serveur virtuel défini (le serveur par défaut) parmi un
- ensemble de directives <code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code> qui sera utilisé. Les
- autres valeurs seront ignorées.</p>
+ <p>Dans un contexte de serveur virtuel à base de nom, c'est
+ la valeur de la paire adresse IP/port du serveur virtuel qui
+ correspond le mieux qui sera utilisée.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -2306,8 +2305,7 @@ requête HTTP</td></tr>
<div class="warning"><h3>Avertissement</h3>
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive <code class="directive">NameVirtualHost</code>.</p>
+ premier de la liste) pour la paire adresse IP/port.</p>
</div>
@@ -2354,11 +2352,10 @@ requête HTTP</td></tr>
<div class="warning"><h3>Avertissement</h3>
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive <code class="directive">NameVirtualHost</code>.</p>
+ premier de la liste) pour lequel la paire adresse IP/port
+ correspond le mieux.</p>
</div>
-
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="LimitRequestLine" id="LimitRequestLine">LimitRequestLine</a> <a name="limitrequestline" id="limitrequestline">Directive</a></h2>
@@ -2402,8 +2399,8 @@ HTTP</td></tr>
<div class="warning"><h3>Avertissement</h3>
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
cette directive est extraite du serveur virtuel par défaut (le
- premier de la liste) pour lequel la connexion correspondait à la
- directive <code class="directive">NameVirtualHost</code>.</p>
+ premier de la liste) pour lequel la paire adresse IP/port
+ correspond le mieux.</p>
</div>
@@ -3013,7 +3010,7 @@ verrou pour tous les mutex ou seulement les mutex spécifiés</td></tr>
sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
<div class="warning"><h3>Sécurité</h3>
- <p>Il est déconseillé d'<em>éviter</em> de placer les fichiers mutex
+ <p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex
dans un répertoire où tout le monde peut écrire comme
<code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
par déni de service et empêcher le serveur de démarrer en créant un
@@ -3104,81 +3101,15 @@ nom</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
</table>
-<p>Une seule directive <code class="directive">NameVirtualHost</code> permet
-d'identifier un ensemble de serveurs virtuels identiques que le serveur
-va sélectionner en fonction du <em>nom d'hôte</em> spécifié par le
-client. La directive <code class="directive">NameVirtualHost</code> est
-obligatoire si vous souhaitez configurer des <a href="../vhosts/">serveurs virtuels à base de nom</a>.</p>
-
-<p>Cette directive, ainsi que les directives <code class="directive">VirtualHost</code> correspondantes, <em>doit</em> comporter un
-numé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ôte, il est
-recommandé d'utiliser plutôt une adresse IP ou un nom d'hôte avec
-caractères génériques. Une directive NameVirtualHost contenant des
-caractères génériques ne peut correspondre qu'à des serveurs virtuels
-qui contiennent aussi des caractères génériques dans leur argument.</p>
-
-<p>Dans les cas où un pare-feu ou autre mandataire reçoit les requêtes
-et les redirige sous une adresse IP différente vers le serveur, vous
-devez spécifier l'adresse IP de l'interface physique de la machine qui
-va servir les requêtes.</p>
-
-<p>Dans l'exemple ci-dessous, les requêtes reçues sur l'interface
-192.0.2.1 et le port 80 ne vont déclencher une sélection que parmi les
-deux premiers serveurs virtuels. Les requêtes reçues sur le port 80 et
-sur toute interface ne vont déclencher une sélection que parmi les
-troisième et quatrième serveurs virtuels. D'une manière générale,
-lorsque l'interface ne constitue pas un critère important de sélection,
-la valeur "*:80" suffit pour les directives NameVirtualHost et
-VirtualHost.</p>
-
-<div class="example"><p><code>
- 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 />
-
- </code></p></div>
-
- <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur
- virtuel correspondant à l'adresse IP qui sera utilisé.</p>
-
- <p>Les adresses IPv6 doivent être entourées de crochets, comme dans
- l'exemple suivant :</p>
-
- <div class="example"><p><code>
- NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080
- </code></p></div>
-
-
-
- <div class="note"><h3>Argument de la directive <code class="directive">&lt;VirtualHost&gt;</code></h3>
- <p>Notez que l'argument de la directive <code class="directive">&lt;VirtualHost&gt;</code> doit être identique à
- l'argument de la directive <code class="directive">NameVirtualHost</code>.</p>
-
- <div class="example"><p><code>
- NameVirtualHost 192.0.2.2:80<br />
- &lt;VirtualHost 192.0.2.2:80&gt;<br />
- # ...<br />
- &lt;/VirtualHost&gt;<br />
- </code></p></div>
- </div>
+ <p>Avant la version 2.3.11, il était nécessaire de définir une
+ directive <code class="directive">NameVirtualHost</code> pour indiquer au
+ serveur qu'une paire adresse IP/port particulière pouvait être
+ utilisée comme serveur virtuel à base de nom. Depuis la version
+ 2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans
+ plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est
+ automatiquement activé pour cette adresse.</p>
+
+ <p>Cette directive n'a actuellement plus aucun effet.</p>
<h3>Voir aussi</h3>
<ul>
@@ -3303,11 +3234,12 @@ particulier</td></tr>
<code>-</code> est supprimée de la liste des options courantes de la
même manière.</p>
- <div class="warning"><h3>Avertissement</h3>
+ <div class="note"><h3>Note</h3>
<p>Mélanger des <code class="directive">Options</code> avec <code>+</code>
ou <code>-</code> avec des <code class="directive">Options</code> sans
<code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
- peut résulter en des comportements inattendus.</p>
+ la vérification de la syntaxe au cours du démarrage du serveur fera
+ échouer ce dernier.</p>
</div>
<p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
@@ -3788,7 +3720,6 @@ le serveur HTTP Apache</a></li>
du serveur HTTP Apache</a></li>
<li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
<li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
-<li><code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code></li>
<li><code class="directive"><a href="#serveralias">ServerAlias</a></code></li>
</ul>
</div>
@@ -4310,7 +4241,8 @@ d'hôte spécifique ou à une adresse IP</td></tr>
pour un document hébergé par un serveur virtuel particulier, il
applique les directives de configuration rassemblées dans la section
<code class="directive">&lt;VirtualHost&gt;</code>. <var>adresse
- IP</var> peut être :</p>
+ IP</var> peut être une des entités suivantes, éventuellement suivies
+ d'un caractère ':' et d'un numéro de port (ou *) :</p>
<ul>
<li>L'adresse IP du serveur virtuel ;</li>
@@ -4318,18 +4250,16 @@ d'hôte spécifique ou à une adresse IP</td></tr>
<li>Un nom de domaine entièrement qualifié correspondant à
l'adresse IP du serveur virtuel (non recommandé) ;</li>
- <li>Le caractère <code>*</code>, qui n'est utilisé qu'en
- combinaison avec <code>NameVirtualHost *</code> pour intercepter
- toutes les adresses IP ; ou</li>
+ <li>Le caractère <code>*</code>, qui agit comme un
+ caractère générique, et correspond à toute adresse IP.</li>
+
+ <li>La chaîne <code>_default_</code>, dont la signification est
+ identique à celle du caractère <code>*</code></li>
- <li>La chaîne de caractères <code>_default_</code>, qui n'est
- utilisée qu'avec l'hébergement virtuel à base d'adresse IP pour
- intercepter les adresses IP qui ne correspondent à aucun serveur
- virtuel.</li>
</ul>
<div class="example"><h3>Exemple</h3><p><code>
- &lt;VirtualHost 10.1.2.3&gt;<br />
+ &lt;VirtualHost 10.1.2.3:80&gt;<br />
<span class="indent">
ServerAdmin webmaster@host.example.com<br />
DocumentRoot /www/docs/host.example.com<br />
@@ -4347,7 +4277,7 @@ d'hôte spécifique ou à une adresse IP</td></tr>
:</p>
<div class="example"><p><code>
- &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]&gt;<br />
+ &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;<br />
<span class="indent">
ServerAdmin webmaster@host.example.com<br />
DocumentRoot /www/docs/host.example.com<br />
@@ -4371,35 +4301,29 @@ d'hôte spécifique ou à une adresse IP</td></tr>
assurer que les adresses des serveurs virtuels sont bien incluses
dans la liste des adresses précisées par la directive <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
</div>
-
- <p>Avec l'hébergement virtuel à base d'adresse IP, on peut utiliser
- le nom spécial <code>_default_</code>, auquel cas le serveur virtuel
- considéré interceptera toute adresse IP qui n'est pas explicitement
- associée à un autre serveur virtuel. En l'absence de serveur virtuel
- associé à <code>_default_</code>, et si l'adresse IP demandée ne
- correspond à aucun serveur virtuel, c'est la configuration du
- serveur "principal" qui sera utilisée, c'est à dire l'ensemble des
- définitions situées en dehors de toute section VirtualHost.</p>
-
- <p>Vous pouvez spécifier <code>:port</code> pour modifier le port du
- serveur virtuel. S'il n'est pas spécifié, sa valeur par défaut
- correspond à celle qui est définie par la dernière directive
- <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> du serveur
- principal. Vous pouvez aussi spécifier <code>:*</code> pour accepter
- tous les ports associés à l'adresse du serveur virtuel (c'est une
- configuration recommandée lorsqu'on utilise
- <code>_default_</code>).</p>
-
+
<p>Tout bloc <code class="directive">&lt;VirtualHost&gt;</code> doit comporter une directive
<code class="directive"><a href="#servername">ServerName</a></code>. Dans le cas
contraire, le serveur virtuel héritera de la valeur de la directive
<code class="directive"><a href="#servername">ServerName</a></code> issue de la
configuration du serveur principal.</p>
- <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur
- virtuel correspondant à l'adresse IP qui sera utilisé. Par
- conséquent, le premier serveur virtuel défini est le serveur virtuel
- par défaut.</p>
+ <p>A l'arrivée d'une requête, le serveur tente de la
+ faire prendre en compte par la section <code class="directive">&lt;VirtualHost&gt;</code> qui correspond le mieux en ne
+ se basant que sur la paire adresse IP/port. Les chaînes sans
+ caractères génériques l'emportent sur celles qui en contiennent. Si
+ aucune correspondance du point de vue de l'adresse IP/port n'est
+ trouvée, c'est la configuration du serveur "principal" qui sera
+ utilisée.</p>
+
+ <p>Si plusieurs serveurs virtuels correspondent du point de vue de
+ l'adresse IP/port, le serveur sélectionne celui qui correspond le
+ mieux du point de vue du nom d'hôte de la requête. Si aucune
+ correspondance du point de vue du nom d'hôte n'est trouvée, c'est le
+ premier serveur virtuel dont l'adresse IP/port correspond qui sera
+ utilisé. Par voie de conséquence, le premier serveur virtuel
+ comportant une certaine paire adresse IP/port est le serveur virtuel
+ par défaut pour cette paire adresse IP/port.</p>
<div class="warning"><h3>Sécurité</h3>
<p>Voir le document sur les <a href="../misc/security_tips.html">conseils à propos de sécurité</a>
diff --git a/docs/manual/mod/mod_headers.html.fr b/docs/manual/mod/mod_headers.html.fr
index 4fba2ae35a..ffe60ca01f 100644
--- a/docs/manual/mod/mod_headers.html.fr
+++ b/docs/manual/mod/mod_headers.html.fr
@@ -228,8 +228,8 @@ tardif</a></h2>
<tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>La condition par défaut passe de "onsuccess" à "always" à
-partir de la version 2.3.9</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>La condition par défaut est temporairement passée
+à "always" dans les version 2.3.9 et 2.3.10</td></tr>
</table>
<p>Cette directive permet de remplacer, fusionner, ou
supprimer des en-têtes de réponse HTTP. L'en-tête est modifié juste
@@ -237,20 +237,38 @@ partir de la version 2.3.9</td></tr>
s'exécutent, ce qui permet la modification des en-têtes
sortants.</p>
- <p>A partir de la version 2.3.9, la condition par défaut est
- "always", ce qui implique que cette directive agit sans tenir compte
- du code d'état de la réponse. Dans les versions 2.3.8 et
- antérieures, "onsuccess" était la condition par défaut, ce qui
- impliquait que les en-têtes n'étaient modifiés que pour les réponses
- avec code d'état <code>2<var>xx</var></code>.</p>
-
- <p>Une valeur effective <code>always</code> peut être nécessaire
- pour forcer la définition des en-têtes par certains modules internes
- (tels que <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>), même dans le cas de réponses
- positives, et doit toujours être présente pour modifier les réponses avec un code
- d'é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éterminer
+ sur quelle table interne d'en-têtes de réponses cette directive va
+ opérer. D'autres composants du serveur peuvent avoir stocké leurs
+ en-têtes de réponses dans la table correspondant à
+ <code>onsuccess</code> ou dans celle correspondant à
+ <code>always</code>. Dans ce contexte, "Always" fait référence au
+ choix d'envoyer les en-têtes que vous ajoutez aux réponses, qu'elle
+ soient avec succès ou échouées ; par contre, si votre action est une
+ fonction d'un en-tête existant, vous devrez lire la documentation de
+ manière plus approfondie car dans ce cas, les choses se compliquent.</p>
+
+ <p>Vous pouvez avoir à changer la valeur par défaut
+ <code>onsuccess</code> en <code>always</code> dans des circonstances
+ similaires à celles exposées plus loin. Notez aussi que la répétition
+ de cette directive avec les deux conditions peut être pertinente
+ dans certains scénarios, car <code>always</code> n'englobe pas
+ <code>onsuccess</code> en ce qui concerne les en-têtes existants :</p>
+
+ <ul>
+ <li>Vous ajoutez un en-tête à une réponse échouée (non-2xx),
+ une redirection par exemple, et dans ce cas, seule la table
+ correspondant à <code>always</code> est utilisée dans la réponse
+ définitive.</li>
+ <li>Vous modifiez ou supprimez un en-tête généré par un script
+ CGI, et dans ce cas, les scripts CGI sont dans la table
+ correspondant à <code>always</code> et non dans la table par
+ défaut.</li>
+ <li>Vous modifiez ou supprimez un en-tête généré par tel ou tel
+ composant du serveur, mais cet en-tête n'est pas trouvé par la
+ condition par défaut <code>onsuccess</code>.</li>
+ </ul>
+
<p>L'action que cette directive provoque est déterminée par le
premier argument (ou par le second argument si une
<var>condition</var> est spécifiée). Il peut prendre
diff --git a/docs/manual/mod/mod_headers.xml.ja b/docs/manual/mod/mod_headers.xml.ja
index 5f323dd72a..9fcaebaa73 100644
--- a/docs/manual/mod/mod_headers.xml.ja
+++ b/docs/manual/mod/mod_headers.xml.ja
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 151408:1031670 (outdated) -->
+<!-- English Revision: 151408:1053655 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/docs/manual/mod/mod_headers.xml.ko b/docs/manual/mod/mod_headers.xml.ko
index e29984e300..e13840dabf 100644
--- a/docs/manual/mod/mod_headers.xml.ko
+++ b/docs/manual/mod/mod_headers.xml.ko
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1031670 (outdated) -->
+<!-- English Revision: 151408:1053655 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/docs/manual/new_features_2_4.html.fr b/docs/manual/new_features_2_4.html.fr
index 5374642f92..e4bd42e254 100644
--- a/docs/manual/new_features_2_4.html.fr
+++ b/docs/manual/new_features_2_4.html.fr
@@ -124,10 +124,20 @@ serveur HTTP Apache</h1>
HTTP sans interférer avec l'authentification et l'autorisation.</dd>
<dt><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></dt>
-
<dd>Support de l'attribut 'onerror' dans un élément 'include',
permettant de servir un message d'erreur personnalisé à la place
du message d'erreur par défaut.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>,
+ <code class="module"><a href="./mod/mod_isapi.html">mod_isapi</a></code>, ...</dt>
+ <dd>La traduction des en-tê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êtes. Les
+ en-têtes contenant des caractères invalides (comme les caractères
+ de soulignement) sont maintenant ignorés. Le document <a href="env.html">Les variables d'environnement dans Apache</a>
+ présentent quelques pistes pour contourner ce problème avec les
+ clients anciens qui nécessitent de tels en-têtes (Ceci affecte
+ tous les modules qui utilisent ces variables d'environnement).</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
diff --git a/docs/manual/vhosts/details.html.fr b/docs/manual/vhosts/details.html.fr
index 4baed9bf5d..36c252eabe 100644
--- a/docs/manual/vhosts/details.html.fr
+++ b/docs/manual/vhosts/details.html.fr
@@ -23,170 +23,93 @@
<a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
- <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 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
- 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>
</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">Interprétation des fichiers
-de configuration</a></li>
+<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">Fichier de configuration</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#hostmatching">Choix du serveur virtuel</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#tips">Trucs et astuces</a></li>
-</ul></div>
+</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support des serveurs virtuels à base
+d'adresse IP</a></li><li><a href="name-based.html">Support des serveurs virtuels à base
+de nom</a></li><li><a href="examples.html">Exemples de serveurs virtuels pour une
+configuration courante</a></li><li><a href="mass.html">Hébergement virtuel de masse configuré
+dynamiquement</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="configparsing" id="configparsing">Interprétation des fichiers
-de configuration</a></h2>
+<h2><a name="configparsing" id="configparsing">Fichier de configuration</a></h2>
<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 <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>
- <p>Les directives
- <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>,
- <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>,
- <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>,
- et <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>
- 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 <code class="directive"><a href="../mod/core.html#listen">Listen</a></code>).
+ </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
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> 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><div class="example"><p><code>
- 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;
-</code></p></div></td>
-<td><div class="example"><p><code>
- &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 />
-</code></p></div></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 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> 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'<a class="glossarylink" href="../glossary.html#servernameindication" title="voir glossaire">Indication du nom du serveur</a>.</p>
<p>Pour chaque serveur virtuel, diverses valeurs sont initialisées
par défaut. En particulier&nbsp;:</p>
@@ -247,79 +170,71 @@ de configuration</a></h2>
<p>À la réception d'une requête, le serveur procède comme suit pour
déterminer quel serveur virtuel utiliser&nbsp;:</p>
- <h3><a name="hashtable" id="hashtable">Vérification dans la table de hash</a></h3>
-
- <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>
+ <h3><a name="hashtable" id="hashtable">Recherche de l'adresse IP</a></h3>
- <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>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 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>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 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>
+
<h3><a name="ipbased" id="ipbased">Serveur virtuel par IP</a></h3>
- <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>
<h3><a name="namebased" id="namebased">Serveur virtuel par nom</a></h3>
- <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'<a class="glossarylink" href="../glossary.html#servernameindication" title="voir glossaire">Indication de nom de serveur</a>,
+ 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>
<h3><a name="persistent" id="persistent">Connexions persistantes</a></h3>
- <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
@@ -342,72 +257,43 @@ de configuration</a></h2>
<h3><a name="observations" id="observations">Observations</a></h3>
<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
@@ -440,17 +326,7 @@ de configuration</a></h2>
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>
</div></div>
<div class="bottomlang">
diff --git a/docs/manual/vhosts/details.xml.meta b/docs/manual/vhosts/details.xml.meta
index 9ec06df893..5cd5c305f7 100644
--- a/docs/manual/vhosts/details.xml.meta
+++ b/docs/manual/vhosts/details.xml.meta
@@ -8,7 +8,7 @@
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
</variants>
diff --git a/docs/manual/vhosts/examples.html.fr b/docs/manual/vhosts/examples.html.fr
index 72a21586b9..0f9b4635dc 100644
--- a/docs/manual/vhosts/examples.html.fr
+++ b/docs/manual/vhosts/examples.html.fr
@@ -24,8 +24,6 @@
<a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<p>Le but de ce document est d'essayer de répondre aux questions
@@ -85,9 +83,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 />
<span class="indent">
@@ -123,17 +118,10 @@
<div class="note">
<h3>Note&nbsp;:</h3>
- <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>
-
- <div class="example"><p><code>
- NameVirtualHost 172.20.30.40<br />
- <br />
- &lt;VirtualHost 172.20.30.40&gt;<br />
- # etc ...
- </code></p></div>
+ <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
@@ -176,9 +164,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 />
<span class="indent">
DocumentRoot /www/example.com<br />
@@ -227,9 +212,7 @@
<div class="example"><h3>Configuration du serveur</h3><p><code>
- 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 />
<span class="indent">
DocumentRoot /www/server1<br />
@@ -259,12 +242,10 @@
ports.</a></h2>
<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>
<div class="example"><h3>Configuration du serveur</h3><p><code>
@@ -272,9 +253,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 />
<span class="indent">
ServerName www.example.com<br />
@@ -390,16 +368,15 @@
<h2><a name="mixed" id="mixed">Hébergements virtuels mixtes basé sur
les noms et sur IP</a></h2>
- <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>
<div class="example"><h3>Configuration du serveur</h3><p><code>
Listen 80<br />
- <br />
- NameVirtualHost 172.20.30.40<br />
- <br />
&lt;VirtualHost 172.20.30.40&gt;<br />
<span class="indent">
DocumentRoot /www/example1<br />
@@ -580,8 +557,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 />
<span class="indent">
DocumentRoot /www/example.org<br />
@@ -623,8 +598,6 @@
<div class="example"><h3>Configuration du serveur</h3><p><code>
- NameVirtualHost 172.20.30.40<br />
- <br />
&lt;VirtualHost 172.20.30.40&gt;<br />
<span class="indent">
# Serveur virtuel primaire<br />
diff --git a/docs/manual/vhosts/examples.xml.meta b/docs/manual/vhosts/examples.xml.meta
index 9222c81673..c15857860f 100644
--- a/docs/manual/vhosts/examples.xml.meta
+++ b/docs/manual/vhosts/examples.xml.meta
@@ -8,7 +8,7 @@
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
diff --git a/docs/manual/vhosts/index.html.fr b/docs/manual/vhosts/index.html.fr
index 4750c625e3..d39f63bbec 100644
--- a/docs/manual/vhosts/index.html.fr
+++ b/docs/manual/vhosts/index.html.fr
@@ -25,8 +25,6 @@
<a href="../ko/vhosts/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<p>Le principe des <cite>Serveurs Virtuels</cite> consiste à
@@ -78,7 +76,6 @@
<ul>
<li><code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li>
- <li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li>
<li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li>
<li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li>
<li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li>
diff --git a/docs/manual/vhosts/index.xml.meta b/docs/manual/vhosts/index.xml.meta
index 41a6ef676a..9a469364e4 100644
--- a/docs/manual/vhosts/index.xml.meta
+++ b/docs/manual/vhosts/index.xml.meta
@@ -9,7 +9,7 @@
<variants>
<variant outdated="yes">de</variant>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
diff --git a/docs/manual/vhosts/name-based.html.fr b/docs/manual/vhosts/name-based.html.fr
index 2a67bf957c..592529b63d 100644
--- a/docs/manual/vhosts/name-based.html.fr
+++ b/docs/manual/vhosts/name-based.html.fr
@@ -25,8 +25,6 @@
<a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<p>Ce document décrit quand et comment utiliser des serveurs
virtuels par nom.</p>
@@ -71,6 +69,13 @@ virtuel basé sur le nom approprié</a></li>
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>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="alg" id="alg">Comment le serveur sélectionne-t-il le serveur
@@ -83,62 +88,34 @@ virtuel basé sur le nom approprié</a></h2>
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
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si c'est le
- cas, il va ensuite rechercher toutes les sections <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> comportant une
- adresse IP correspondante, puis essaiera d'en trouver une dont la
- directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> ou
- <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> 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>
-
- <h3><a name="defaultvhost" id="defaultvhost">Le serveur virtuel basé sur le nom
- par défaut pour une directive NameVirtualHost</a></h3>
- <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>
+ toutes les directives VirtualHost.</p>
+ <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de
+ section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> 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 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et <code class="directive">module="core"&gt;ServerAlias</code> avec le nom de serveur
+ présent dans la requête.</p>
+
+ <h3><a name="defaultvhost" id="defaultvhost">Le serveur virtuel à base de nom
+ par défaut pour une paire adresse IP/port</a></h3>
+ <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>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">Utilisation de serveurs virtuels par nom</a></h2>
-<table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li></ul></td></tr></table>
-
- <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
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Dans un
- cas normal où n'importe quelle adresse IP peut être utilisée,
- vous pouvez ajouter <code>*</code> comme argument de la directive
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. 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>
+<table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li></ul></td></tr></table>
+
- <div class="note"><p>Notez que la simple mention d'une adresse
- IP dans une directive
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> 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></div>
-
- <p>L'étape suivante est la création d'une section
+ <p>La première étape consiste à créer une section
<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
- pour chacun des serveurs à créer. L'argument de la directive
- <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
- doit être le même que celui de la directive
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
- (dans le cas présent "*:80"). Dans chaque section
+ pour chacun des serveurs à définir. Dans chaque section
<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>,
vous devez définir au minimum une directive
<code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> pour désigner
@@ -171,8 +148,6 @@ virtuel basé sur le nom approprié</a></h2>
suivante à <code>httpd.conf</code>&nbsp;:</p>
<div class="example"><p><code>
- NameVirtualHost *:80<br />
- <br />
&lt;VirtualHost *:80&gt;<br />
<span class="indent">
# Le premier serveur virtuel de la liste est aussi le
@@ -191,8 +166,7 @@ virtuel basé sur le nom approprié</a></h2>
</code></p></div>
<p>Autrement, vous pouvez spécifiez une adresse IP explicite
- à la place de <code>*</code> dans les deux directives
- <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> et
+ à la place de <code>*</code> dans la directive
<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.
Par exemple, cette méthode est utile si vous souhaitez faire
tourner quelques serveurs virtuels par nom sur une même adresse
diff --git a/docs/manual/vhosts/name-based.xml.meta b/docs/manual/vhosts/name-based.xml.meta
index fdb7b6bac8..c87cdc59f2 100644
--- a/docs/manual/vhosts/name-based.xml.meta
+++ b/docs/manual/vhosts/name-based.xml.meta
@@ -9,7 +9,7 @@
<variants>
<variant outdated="yes">de</variant>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>