summaryrefslogtreecommitdiff
path: root/docs/manual/mod/mod_vhost_alias.xml.fr
blob: ff2c05a2af1ac9eaa9f2dd7e19817d1e8cbb5837 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1673563 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_vhost_alias.xml.meta">

<name>mod_vhost_alias</name>
<description>Permet de configurer dynamiquement l'h&eacute;bergement virtuel de
masse</description>
<status>Extension</status>
<sourcefile>mod_vhost_alias.c</sourcefile>
<identifier>vhost_alias_module</identifier>

<summary>
    <p>Ce module permet de cr&eacute;er des serveurs virtuels configur&eacute;s
    dynamiquement, en autorisant l'utilisation de l'adresse IP et/ou de
    l'en-t&ecirc;te <code>Host:</code> de la requ&ecirc;te HTTP comme partie du nom
    de chemin afin de d&eacute;terminer les fichiers &agrave; servir. Ceci facilite la
    gestion d'un grand nombre de serveurs virtuels poss&egrave;dant des
    configurations similaires.</p>

    <note><title>Note</title>
      <p>Si les modules <module>mod_alias</module> ou
      <module>mod_userdir</module> sont utilis&eacute;s pour traduire les URIs
      en noms de fichiers, ils l'emportent sur les directives du module
      <module>mod_vhost_alias</module> d&eacute;crites ci-dessous. Par
      exemple, la configuration suivante fera correspondre <code>
      /cgi-bin/script.pl</code> &agrave; <code>
      /usr/local/apache2/cgi-bin/script.pl</code> dans tous les cas :</p>

      <highlight language="config">
ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
VirtualScriptAlias "/never/found/%0/cgi-bin/"
      </highlight>
    </note>
</summary>

<seealso><directive module="core">UseCanonicalName</directive></seealso>
<seealso><a href="../vhosts/mass.html">Configuration dynamique de
l'h&eacute;bergement virtuel de masse</a></seealso>

<section id="interpol">
    <title>Interpolation du nom de r&eacute;pertoire</title>

    <p>Toutes les directives de ce module ins&egrave;rent une cha&icirc;ne dans un
    nom de chemin. La cha&icirc;ne ins&eacute;r&eacute;e (que nous appellerons maintenant le
    "nom") peut &ecirc;tre soit le nom du serveur (voir la directive
    <directive module="core">UseCanonicalName</directive> pour les
    d&eacute;tails sur la mani&egrave;re dont il est d&eacute;termin&eacute;), soit l'adresse IP du
    serveur virtuel h&eacute;berg&eacute; par le serveur sous la forme d'un quadruplet
    d'octets s&eacute;par&eacute;s par des points. L'insertion est contr&ocirc;l&eacute;e par des
    sp&eacute;cificateurs inspir&eacute;s de <code>printf</code> et poss&egrave;dant de
    nombreux formats :</p>

<table>
<columnspec><column width=".2"/><column width=".6"/></columnspec>
<tr><td><code>%%</code></td>
<td>ins&egrave;re un <code>%</code></td></tr>

<tr><td><code>%p</code></td>
<td>ins&egrave;re le num&eacute;ro de port du serveur virtuel</td></tr>

<tr><td><code>%N.M</code></td>
<td>ins&egrave;re le nom (en partie)</td></tr>

</table>

    <p><code>N</code> et <code>M</code> permettent de sp&eacute;cifier des
    sous-cha&icirc;nes du nom. <code>N</code> s&eacute;lectionne un des composants du
    nom s&eacute;par&eacute;s par des points, et <code>M</code> s&eacute;lectionne des
    caract&egrave;res &agrave; l'int&eacute;rieur de ce que <code>N</code> a s&eacute;lectionn&eacute;.
    <code>M</code> est optionnel et sa valeur par d&eacute;faut est 0 s'il
    n'est pas sp&eacute;cifi&eacute; ; le point doit &ecirc;tre pr&eacute;sent si et seulement si
    <code>M</code> l'est aussi. Les modes d'insertion sont les suivants
    :</p>

    <table>
      <columnspec><column width=".1"/><column width=".4"/></columnspec>
      <tr><td><code>0</code></td>
      <td>le nom en entier</td></tr>

      <tr><td><code>1</code></td>
      <td>la premi&egrave;re partie</td></tr>

      <tr><td><code>2</code></td>
      <td>la seconde partie</td></tr>

      <tr><td><code>-1</code></td>
      <td>la derni&egrave;re partie</td></tr>

      <tr><td><code>-2</code></td>
      <td>l'avant-derni&egrave;re partie</td></tr>

      <tr><td><code>2+</code></td>
      <td>toutes les parties &agrave; partir de la seconde</td></tr>

      <tr><td><code>-2+</code></td>
      <td>toutes les parties jusqu'&agrave; l'avant-derni&egrave;re</td></tr>

      <tr><td><code>1+</code> et <code>-1+</code></td>
      <td>identique &agrave; <code>0</code></td></tr>
    </table>

    <p>Si <code>N</code> ou <code>M</code> est plus grand que le nombre
    de parties disponibles, seul un caract&egrave;re de soulignement est
    ins&eacute;r&eacute;.</p>

</section>

<section id="examples">
    <title>Exemples</title>

    <p>Pour des serveurs virtuels simples &agrave; base de nom, utilisez les
    directives suivantes dans le fichier de configuration de votre
    serveur :</p>

    <highlight language="config">
UseCanonicalName    Off
VirtualDocumentRoot "/usr/local/apache/vhosts/%0"
    </highlight>

    <p>Une requ&ecirc;te pour
    <code>http://www.example.com/repertoire/fichier.html</code>
    concernera alors la ressource
    <code>/usr/local/apache/vhosts/www.example.com/repertoire/fichier.html</code>.
    </p>

    <p>Pour un tr&egrave;s grand nombre de serveurs virtuels, il est avantageux
    d'organiser les fichiers de fa&ccedil;on &agrave; r&eacute;duire la taille du r&eacute;pertoire
    <code>vhosts</code>. Pour ce faire, ins&eacute;rez les lignes suivantes
    dans votre fichier de configuration :</p>

    <highlight language="config">
UseCanonicalName    Off
VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2"
    </highlight>

    <p>Une requ&ecirc;te pour
    <code>http://www.domaine.example.com/repertoire/fichier.html</code>
    concernera alors la ressource
    <code>/usr/local/apache/vhosts/example.com/d/o/m/domaine/repertoire/fichier.html</code>.</p>

    <p>Une r&eacute;partition plus r&eacute;guli&egrave;re des fichiers peut &ecirc;tre obtenue en
    partant de la fin d'un composant du nom, comme dans l'exemple
    suivant :</p>

<highlight language="config">
    VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2"
</highlight>

    <p>La requ&ecirc;te pr&eacute;c&eacute;dente concernerait alors
    <code>/usr/local/apache/vhosts/example.com/e/n/i/domaine/repertoire/fichier.html</code>.</p>

    <p>Vous pouvez &eacute;galement utiliser : </p>

<highlight language="config">
    VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+"
</highlight>

    <p>La requ&ecirc;te pr&eacute;c&eacute;dente concernerait alors
    <code>/usr/local/apache/vhosts/example.com/d/o/m/aine/repertoire/fichier.html</code>.</p>

    <p>Une demande tr&egrave;s courante des utilisateurs concerne la possibilit&eacute; de
    faire correspondre plusieurs racines de documents &agrave; plusieurs
    domaines, sans avoir &agrave; se pr&eacute;occuper de la longueur ou du nombre de
    parties du nom d'h&ocirc;te faisant partie de la requ&ecirc;te. Si le nom d'h&ocirc;te
    de la requ&ecirc;te est <code>sub.www.domain.example.com</code> au lieu de
    simplement <code>www.domain.example.com</code>, alors en utilisant
    %3+, la racine des documents sera
    <code>/usr/local/apache/vhosts/domain.example.com/...</code> au
    lieu du r&eacute;pertoire <code>example.com</code> attendu. Dans ce genre
    de situation, il peut s'av&eacute;rer pr&eacute;f&eacute;rable d'utiliser la combinaison
    <code>%-2.0.%-1.0</code> qui fournira toujours le nom de domaine et
    le tld, par exemple <code>example.com</code> sans tenir compte du
    nombre de sous-domaines ajout&eacute;s au nom d'h&ocirc;te. Dans ces conditions,
    il est possible d'&eacute;laborer une configuration qui associera les
    sous-domaines de premier, second et troisi&egrave;me niveau au m&ecirc;me
    r&eacute;pertoire :
</p>
<highlight language="config">
    VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"
</highlight>
<p>
Dans l'exemple ci-dessus, <code>www.example.com</code>,
<code>www.sub.example.com</code> ou <code>example.com</code>
correspondront tous au r&eacute;pertoire
<code>/usr/local/apache/vhosts/example.com</code>.
</p>



    <p>Pour l'h&eacute;bergement virtuel &agrave; base d'adresse IP, vous pouvez
    ins&eacute;rer les lignes suivantes dans votre fichier de configuration
    :</p>

    <highlight language="config">
UseCanonicalName DNS
VirtualDocumentRootIP "/usr/local/apache/vhosts/%1/%2/%3/%4/docs"
VirtualScriptAliasIP  "/usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin"
    </highlight>

    <p>Si l'adresse IP de <code>www.domaine.example.com</code> est
    10.20.30.40, une requ&ecirc;te pour
    <code>http://www.domaine.example.com/repertoire/fichier.html</code>
    concernera la ressource
    <code>/usr/local/apache/vhosts/10/20/30/40/docs/repertoire/fichier.html</code>.
    Une requ&ecirc;te pour
    <code>http://www.domaine.example.com/cgi-bin/script.pl</code>
    concernera la ressource
    <code>/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl</code>.</p>

    <p>Si vous voulez ins&eacute;rer le caract&egrave;re <code>.</code> dans une
    directive <code>VirtualDocumentRoot</code>, et si cela cr&eacute;e un
    conflit avec un sp&eacute;cificateur <code>%</code>, vous pouvez contourner
    le probl&egrave;me de la mani&egrave;re suivante :</p>

<highlight language="config">
    VirtualDocumentRoot "/usr/local/apache/vhosts/%2.0.%3.0"
</highlight>

    <p>Une requ&ecirc;te pour
    <code>http://www.domaine.example.com/repertoire/fichier.html</code>
    concernera alors la ressource
    <code>/usr/local/apache/vhosts/domaine.exemple/repertoire/fichier.html</code>.</p>

    <p>Les sp&eacute;cificateurs de format <code>%V</code> et <code>%A</code>
    de la directive <directive
    module="mod_log_config">LogFormat</directive> s'av&egrave;rent tr&egrave;s utiles
    lorsqu'ils sont utilis&eacute;s en conjonction avec ce module.</p>
</section>

<directivesynopsis>
<name>VirtualDocumentRoot</name>
<description>Permet une configuration dynamique de la racine des
documents d'un serveur virtuel donn&eacute;</description>
<syntax>VirtualDocumentRoot <em>r&eacute;pertoire-interpol&eacute;</em>|none</syntax>
<default>VirtualDocumentRoot none</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
</contextlist>

<usage>

    <p>La directive <directive>VirtualDocumentRoot</directive> vous
    permet de sp&eacute;cifier o&ugrave; le serveur HTTP Apache pourra trouver vos
    documents en se basant
    sur le nom du serveur. Le r&eacute;sultat de l'expansion du
    <em>r&eacute;pertoire-interpol&eacute;</em> est utilis&eacute; comme racine de
    l'arborescence des documents d'une mani&egrave;re similaire &agrave; l'argument de
    la directive <directive module="core">DocumentRoot</directive>. Si
    <em>r&eacute;pertoire-interpol&eacute;</em> a pour valeur <code>none</code>, la
    directive <directive>VirtualDocumentRoot</directive> est d&eacute;sactiv&eacute;e.
    Cette directive ne peut pas &ecirc;tre utilis&eacute;e dans le m&ecirc;me contexte que
    la directive <directive
    module="mod_vhost_alias">VirtualDocumentRootIP</directive>.</p>

<note type="warning"><title>Note</title>
La directive <directive>VirtualDocumentRoot</directive> l'emporte sur
toute directive <directive module="core">DocumentRoot</directive>
d&eacute;finie dans le m&ecirc;me contexte ou dans des contextes enfants. Le fait de
d&eacute;finir une directive <directive>VirtualDocumentRoot</directive> dans le
contexte du serveur principal va effectivement l'emporter sur toute
directive <directive module="core">DocumentRoot</directive> d&eacute;finie dans
un serveur virtuel quelconque, si vous n'avez pas d&eacute;fini
<directive>VirtualDocumentRoot</directive> &agrave; <code>None</code> dans ce
serveur virtuel.
</note>

</usage>
</directivesynopsis>

<directivesynopsis>
<name>VirtualDocumentRootIP</name>
<description>Configuration dynamique de la racine des documents pour un
serveur virtuel donn&eacute;</description>
<syntax>VirtualDocumentRootIP <em>r&eacute;pertoire-interpol&eacute;</em>|none</syntax>
<default>VirtualDocumentRootIP none</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
</contextlist>

<usage>

<p>La directive <directive>VirtualDocumentRootIP</directive> est
identique &agrave; la directive <directive
module="mod_vhost_alias">VirtualDocumentRoot</directive> &agrave; l'exception
pr&egrave;s qu'elle utilise l'adresse IP du serveur virtuel pour
l'interpolation du r&eacute;pertoire &agrave; la place du nom du serveur.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>VirtualScriptAlias</name>
<description>Configuration dynamique du r&eacute;pertoire des scripts CGI pour
un serveur virtuel donn&eacute;</description>
<syntax>VirtualScriptAlias <em>r&eacute;pertoire-interpol&eacute;</em>|none</syntax>
<default>VirtualScriptAlias none</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
</contextlist>

<usage>

    <p>La directive <directive>VirtualScriptAlias</directive> vous
    permet de sp&eacute;cifier o&ugrave; Apache httpd pourra trouver les scripts CGI selon une
    m&eacute;thode similaire &agrave; celle qu'utilise la directive <directive
    module="mod_vhost_alias">VirtualDocumentRoot</directive> pour les
    autres documents. Elle recherche des requ&ecirc;tes dont l'URI commence
    par <code>/cgi-bin/</code>, comme le ferait la directive <directive
    module="mod_alias">ScriptAlias</directive>.</p>

</usage>
</directivesynopsis>

<directivesynopsis>
<name>VirtualScriptAliasIP</name>
<description>Configuration dynamique du r&eacute;pertoire des scripts CGI pour
un serveur virtuel donn&eacute;</description>
<syntax>VirtualScriptAliasIP <em>r&eacute;pertoire-interpol&eacute;</em>|none</syntax>
<default>VirtualScriptAliasIP none</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
</contextlist>

<usage>

    <p>La directive <directive>VirtualScriptAliasIP</directive> est
    identique &agrave; la directive <directive
    module="mod_vhost_alias">VirtualScriptAlias</directive> &agrave;
    l'exception pr&egrave;s qu'elle utilise l'adresse IP du serveur virtuel
    pour l'interpolation du r&eacute;pertoire &agrave; la place du nom du serveur.</p>

    </usage>

</directivesynopsis>
</modulesynopsis>