]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_vhost_alias.xml.fr
Merge in APR[-util] macros from branches/trunk-buildconf-noapr
[apache] / docs / manual / mod / mod_vhost_alias.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1673945 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- $LastChangedRevision: 2015041801 $ -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="mod_vhost_alias.xml.meta">
26
27 <name>mod_vhost_alias</name>
28 <description>Permet de configurer dynamiquement l'hébergement virtuel de
29 masse</description>
30 <status>Extension</status>
31 <sourcefile>mod_vhost_alias.c</sourcefile>
32 <identifier>vhost_alias_module</identifier>
33
34 <summary>
35     <p>Ce module permet de créer des serveurs virtuels configurés
36     dynamiquement, en autorisant l'utilisation de l'adresse IP et/ou de
37     l'en-tête <code>Host:</code> de la requête HTTP comme partie du nom
38     de chemin afin de déterminer les fichiers à servir. Ceci facilite la
39     gestion d'un grand nombre de serveurs virtuels possèdant des
40     configurations similaires.</p>
41
42     <note><title>Note</title>
43       <p>Si les modules <module>mod_alias</module> ou
44       <module>mod_userdir</module> sont utilisés pour traduire les URIs
45       en noms de fichiers, ils l'emportent sur les directives du module
46       <module>mod_vhost_alias</module> décrites ci-dessous. Par
47       exemple, la configuration suivante fera correspondre <code>
48       /cgi-bin/script.pl</code> à <code>
49       /usr/local/apache2/cgi-bin/script.pl</code> dans tous les cas :</p>
50
51       <highlight language="config">
52 ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
53 VirtualScriptAlias "/never/found/%0/cgi-bin/"
54       </highlight>
55     </note>
56 </summary>
57
58 <seealso><directive module="core">UseCanonicalName</directive></seealso>
59 <seealso><a href="../vhosts/mass.html">Configuration dynamique de
60 l'hébergement virtuel de masse</a></seealso>
61
62 <section id="interpol">
63     <title>Interpolation du nom de répertoire</title>
64
65     <p>Toutes les directives de ce module insèrent une chaîne dans un
66     nom de chemin. La chaîne insérée (que nous appellerons maintenant le
67     "nom") peux être soit le nom du serveur (voir la directive
68     <directive module="core">UseCanonicalName</directive> pour les
69     détails sur la manière dont il est déterminé), soit l'adresse IP du
70     serveur virtuel hébergé par le serveur sous la forme d'un quadruplet
71     d'octets séparés par des points. L'insertion est contrôlée par des
72     spécificateurs inspirés de <code>printf</code> et possèdant de
73     nombreux formats :</p>
74
75 <table>
76 <columnspec><column width=".2"/><column width=".6"/></columnspec>
77 <tr><td><code>%%</code></td>
78 <td>insère un <code>%</code></td></tr>
79
80 <tr><td><code>%p</code></td>
81 <td>insère le numéro de port du serveur virtuel</td></tr>
82
83 <tr><td><code>%N.M</code></td>
84 <td>insère le nom (en partie)</td></tr>
85
86 </table>
87
88     <p><code>N</code> et <code>M</code> permettent de spécifier des
89     sous-chaînes du nom. <code>N</code> sélectionne un des composants du
90     nom séparés par des points, et <code>M</code> sélectionne des
91     caractères à l'intérieur de ce que <code>N</code> a sélectionné.
92     <code>M</code> est optionnel et sa valeur par défaut est 0 s'il
93     n'est pas spécifié ; le point doit être présent si et seulement si
94     <code>M</code> l'est aussi. Les modes d'insertion sont les suivants
95     :</p>
96
97     <table>
98       <columnspec><column width=".1"/><column width=".4"/></columnspec>
99       <tr><td><code>0</code></td>
100       <td>le nom en entier</td></tr>
101
102       <tr><td><code>1</code></td>
103       <td>la première partie</td></tr>
104
105       <tr><td><code>2</code></td>
106       <td>la seconde partie</td></tr>
107
108       <tr><td><code>-1</code></td>
109       <td>la dernière partir</td></tr>
110
111       <tr><td><code>-2</code></td>
112       <td>l'avant-dernière partie</td></tr>
113
114       <tr><td><code>2+</code></td>
115       <td>toutes les parties à partir de la seconde</td></tr>
116
117       <tr><td><code>-2+</code></td>
118       <td>toutes les parties jusqu'à l'avant-dernière</td></tr>
119
120       <tr><td><code>1+</code> et <code>-1+</code></td>
121       <td>identique à <code>0</code></td></tr>
122     </table>
123
124     <p>Si <code>N</code> ou <code>M</code> est plus grand que le nombre
125     de parties disponibles, seul un caractère de soulignement est
126     inséré.</p>
127
128 </section>
129
130 <section id="examples">
131     <title>Exemples</title>
132
133     <p>Pour des serveurs virtuels simples à base de nom, utilisez les
134     directives suivantes dans le fichier de configuration de votre
135     serveur :</p>
136
137     <highlight language="config">
138 UseCanonicalName    Off
139 VirtualDocumentRoot "/usr/local/apache/vhosts/%0"
140     </highlight>
141
142     <p>Une requête pour
143     <code>http://www.example.com/repertoire/fichier.html</code>
144     concernera alors la ressource
145     <code>/usr/local/apache/vhosts/www.example.com/repertoire/fichier.html</code>.
146     </p>
147
148     <p>Pour un très grand nombre de serveurs virtuels, il est avantageux
149     d'organiser les fichiers de façon à réduire la taille du répertoire
150     <code>vhosts</code>. Pour ce faire, insérez les lignes suivantes
151     dans votre fichier de configuration :</p>
152
153     <highlight language="config">
154 UseCanonicalName    Off
155 VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2"
156     </highlight>
157
158     <p>Une requête pour
159     <code>http://www.domaine.example.com/repertoire/fichier.html</code>
160     concernera alors la ressource
161     <code>/usr/local/apache/vhosts/example.com/d/o/m/domaine/repertoire/fichier.html</code>.</p>
162
163     <p>Une répartition plus régulière des fichiers peut être obtenue en
164     partant de la fin d'un composant du nom, comme dans l'exemple
165     suivant :</p>
166
167 <highlight language="config">
168     VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2"
169 </highlight>
170
171     <p>La requête précédente concernerait alors
172     <code>/usr/local/apache/vhosts/example.com/e/n/i/domaine/repertoire/fichier.html</code>.</p>
173
174     <p>Vous pouvez aussi utiliser : </p>
175
176 <highlight language="config">
177     VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+"
178 </highlight>
179
180     <p>La requête précédente concernerait alors
181     <code>/usr/local/apache/vhosts/example.com/d/o/m/aine/repertoire/fichier.html</code>.</p>
182
183     <p>Une demande très courante des utilisateurs concerne la possibilité de
184     faire correspondre plusieurs racines de documents à plusieurs
185     domaines, sans avoir à se préoccuper de la longueur ou du nombre de
186     parties du nom d'hôte faisant partie de la requête. Si le nom d'hôte
187     de la requête est <code>sub.www.domain.example.com</code> au lieu de
188     simplement <code>www.domain.example.com</code>, alors en utilisant
189     %3+, la racine des documents sera
190     <code>/usr/local/apache/vhosts/domain.example.com/...</code> au
191     lieu du répertoire <code>example.com</code> attendu. Dans ce genre
192     de situation, il peut s'avérer préférable d'utiliser la combinaison
193     <code>%-2.0.%-1.0</code> qui fournira toujours le nom de domaine et
194     le tld, par exemple <code>example.com</code> sans tenir compte du
195     nombre de sous-domaines ajoutés au nom d'hôte. Dans ces conditions,
196     il est possible d'élaborer une configuration qui associera les
197     sous-domaines de premier, second et troisième niveau au même
198     répertoire :
199 </p>
200 <highlight language="config">
201     VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"
202 </highlight>
203 <p>
204 Dans l'exemple ci-dessus, <code>www.example.com</code>,
205 <code>www.sub.example.com</code> ou <code>example.com</code>
206 correspondront tous au répertoire
207 <code>/usr/local/apache/vhosts/example.com</code>.
208 </p>
209
210
211
212     <p>Pour l'hébergement virtuel à base d'adresse IP, vous pouvez
213     insérer les lignes suivantes dans votre fichier de configuration
214     :</p>
215
216     <highlight language="config">
217 UseCanonicalName DNS
218 VirtualDocumentRootIP "/usr/local/apache/vhosts/%1/%2/%3/%4/docs"
219 VirtualScriptAliasIP  "/usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin"
220     </highlight>
221
222     <p>Si l'adresse IP de <code>www.domaine.example.com</code> est
223     10.20.30.40, une requête pour
224     <code>http://www.domaine.example.com/repertoire/fichier.html</code>
225     concernera la ressource
226     <code>/usr/local/apache/vhosts/10/20/30/40/docs/repertoire/fichier.html</code>.
227     Une requête pour
228     <code>http://www.domaine.example.com/cgi-bin/script.pl</code>
229     concernera la ressource
230     <code>/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl</code>.</p>
231
232     <p>Si vous voulez insérer le caractère <code>.</code> dans une
233     directive <code>VirtualDocumentRoot</code>, et si cela crée un
234     conflit avec un spécificateur <code>%</code>, vous pouvez contourner
235     le problème de la manière suivante :</p>
236
237 <highlight language="config">
238     VirtualDocumentRoot "/usr/local/apache/vhosts/%2.0.%3.0"
239 </highlight>
240
241     <p>Une requête pour
242     <code>http://www.domaine.example.com/repertoire/fichier.html</code>
243     concernera alors la ressource
244     <code>/usr/local/apache/vhosts/domaine.exemple/repertoire/fichier.html</code>.</p>
245
246     <p>Les spécificateurs de format <code>%V</code> et <code>%A</code>
247     de la directive <directive
248     module="mod_log_config">LogFormat</directive> s'avèrent très utiles
249     lorsqu'ils sont utilisés en conjonction avec ce module.</p>
250 </section>
251
252 <directivesynopsis>
253 <name>VirtualDocumentRoot</name>
254 <description>Permet une configuration dynamique de la racine des
255 documents d'un serveur virtuel donné</description>
256 <syntax>VirtualDocumentRoot <em>répertoire-interpolé</em>|none</syntax>
257 <default>VirtualDocumentRoot none</default>
258 <contextlist>
259 <context>server config</context>
260 <context>virtual host</context>
261 </contextlist>
262
263 <usage>
264
265     <p>La directive <directive>VirtualDocumentRoot</directive> vous
266     permet de spécifier où le serveur HTTP Apache pourra trouver vos
267     documents en se basant
268     sur le nom du serveur. Le résultat de l'expansion du
269     <em>répertoire-interpolé</em> est utilisé comme racine de
270     l'arborescence des documents d'une manière similaire à l'argument de
271     la directive <directive module="core">DocumentRoot</directive>. Si
272     <em>répertoire-interpolé</em> a pour valeur <code>none</code>, la
273     directive <directive>VirtualDocumentRoot</directive> est désactivée.
274     Cette directive ne peut pas être utilisée dans le même contexte que
275     la directive <directive
276     module="mod_vhost_alias">VirtualDocumentRootIP</directive>.</p>
277
278 <note type="warning"><title>Note</title>
279 La directive <directive>VirtualDocumentRoot</directive> l'emporte sur
280 toute directive <directive module="core">DocumentRoot</directive>
281 définie dans le même contexte ou dans des contextes enfants. Le fait de
282 définir une directive <directive>VirtualDocumentRoot</directive> dans le
283 contexte du serveur principal va effectivement l'emporter sur toute
284 directive <directive module="core">DocumentRoot</directive> définie dans
285 un serveur virtuel quelconque, si vous n'avez pas défini
286 <directive>VirtualDocumentRoot</directive> à <code>None</code> dans ce
287 serveur virtuel.
288 </note>    
289
290 </usage>
291 </directivesynopsis>
292
293 <directivesynopsis>
294 <name>VirtualDocumentRootIP</name>
295 <description>Configuration dynamique de la racine des documents pour un
296 serveur virtuel donné</description>
297 <syntax>VirtualDocumentRootIP <em>répertoire-interpolé</em>|none</syntax>
298 <default>VirtualDocumentRootIP none</default>
299 <contextlist>
300 <context>server config</context>
301 <context>virtual host</context>
302 </contextlist>
303
304 <usage>
305
306 <p>La directive <directive>VirtualDocumentRootIP</directive> est
307 identique à la directive <directive
308 module="mod_vhost_alias">VirtualDocumentRoot</directive> à l'exception
309 près qu'elle utilise l'adresse IP du serveur virtuel pour
310 l'interpolation du répertoire à la place du nom du serveur.</p>
311 </usage>
312 </directivesynopsis>
313
314 <directivesynopsis>
315 <name>VirtualScriptAlias</name>
316 <description>Configuration dynamique du répertoire des scripts CGI pour
317 un serveur virtuel donné</description>
318 <syntax>VirtualScriptAlias <em>répertoire-interpolé</em>|none</syntax>
319 <default>VirtualScriptAlias none</default>
320 <contextlist>
321 <context>server config</context>
322 <context>virtual host</context>
323 </contextlist>
324
325 <usage>
326
327     <p>La directive <directive>VirtualScriptAlias</directive> vous
328     permet de spécifier où Apache httpd pourra trouver les scripts CGI selon une
329     méthode similaire à celle qu'utilise la directive <directive
330     module="mod_vhost_alias">VirtualDocumentRoot</directive> pour les
331     autres documents. Elle recherche des requêtes dont l'URI commence
332     par <code>/cgi-bin/</code>, comme le ferait la directive <directive
333     module="mod_alias">ScriptAlias</directive>.</p>
334
335 </usage>
336 </directivesynopsis>
337
338 <directivesynopsis>
339 <name>VirtualScriptAliasIP</name>
340 <description>Configuration dynamique du répertoire des scripts CGI pour
341 un serveur virtuel donné</description>
342 <syntax>VirtualScriptAliasIP <em>répertoire-interpolé</em>|none</syntax>
343 <default>VirtualScriptAliasIP none</default>
344 <contextlist>
345 <context>server config</context>
346 <context>virtual host</context>
347 </contextlist>
348
349 <usage>
350
351     <p>La directive <directive>VirtualScriptAliasIP</directive> est
352     identique à la directive <directive
353     module="mod_vhost_alias">VirtualScriptAlias</directive> à
354     l'exception près qu'elle utilise l'adresse IP du serveur virtuel
355     pour l'interpolation du répertoire à la place du nom du serveur.</p>
356
357     </usage>
358
359 </directivesynopsis>
360 </modulesynopsis>
361