]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_alias.xml.fr
Update transformations.
[apache] / docs / manual / mod / mod_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 : 770506 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
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_alias.xml.meta">
26
27 <name>mod_alias</name>
28 <description>Permet d'atteindre diff&eacute;rentes parties du syst&egrave;me de
29 fichiers depuis l'arborescence des documents du site web, ainsi que la
30 redirection d'URL</description>
31 <status>Base</status>
32 <sourcefile>mod_alias.c</sourcefile>
33 <identifier>alias_module</identifier>
34
35 <summary>
36     <p>Les directives fournies par ce module permettent de manipuler et
37     de contr&ocirc;ler les URLs &agrave; l'arriv&eacute;e des requ&ecirc;tes sur le serveur. Les
38     directives <directive module="mod_alias">Alias</directive> et
39     <directive module="mod_alias">ScriptAlias</directive> permettent de
40     faire correspondre des URLs avec des chemins du syst&egrave;me de fichiers.
41     Ceci permet de servir des contenus qui ne sont pas situ&eacute;s dans
42     l'arborescence de <directive
43     module="core">DocumentRoot</directive> comme s'ils y &eacute;taient
44     r&eacute;ellement. La directive <directive
45     module="mod_alias">ScriptAlias</directive> a pour effet
46     suppl&eacute;mentaire de marquer le r&eacute;pertoire cible comme conteneur de
47     scripts CGI.</p>
48
49     <p>Les directives <directive module="mod_alias">Redirect</directive>
50     indiquent aux clients qu'ils doivent effectuer une nouvelle requ&ecirc;te
51     avec une URL diff&eacute;rente. Elles sont souvent utilis&eacute;es lorsqu'une
52     ressource a &eacute;t&eacute; d&eacute;plac&eacute;e.</p>
53
54     <p><module>mod_alias</module> est con&ccedil;u pour traiter des t&acirc;ches
55     simples de manipulation d'URL. Pour des t&acirc;ches plus complexes comme
56     la manipulation des cha&icirc;nes d'arguments des requ&ecirc;tes, utilisez
57     plut&ocirc;t les outils fournis par le module <module>mod_rewrite</module></p>
58
59 </summary>
60
61 <seealso><module>mod_rewrite</module></seealso> <seealso><a
62 href="../urlmapping.html">Mise en correspondance des URLs avec le
63 syst&egrave;me de fichiers</a></seealso>
64
65 <section id="order"><title>Chronologie du traitement</title>
66
67     <p>Les alias et redirections apparaissant dans diff&eacute;rents contextes
68     sont trait&eacute;s comme les autres directives en respectant les <a
69     href="../sections.html#mergin">r&egrave;gles de fusion</a> standards. Par
70     contre, ils sont trait&eacute;s selon une chronologie particuli&egrave;re
71     lorsqu'ils apparaissent dans le m&ecirc;me contexte (par exemple, dans la
72     m&ecirc;me section <directive type="section"
73     module="core">VirtualHost</directive>).</p>
74
75     <p>Premi&egrave;rement, toutes les redirections sont trait&eacute;es avant les
76     alias, et ainsi, une requ&ecirc;te qui correspond &agrave; une directive
77     <directive module="mod_alias">Redirect</directive> ou <directive
78     module="mod_alias">RedirectMatch</directive> ne se verra jamais
79     appliquer d'alias. Deuxi&egrave;mement, les alias et redirections sont
80     trait&eacute;s selon l'ordre dans lequel ils apparaissent dans le fichier
81     de configuration, seule la premi&egrave;re correspondance &eacute;tant prise en
82     compte.</p>
83
84     <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
85     m&ecirc;me sous-r&eacute;pertoire, vous devez classer les chemins du plus pr&eacute;cis
86     au moins pr&eacute;cis afin que toutes les directives puissent
87     &eacute;ventuellement s'appliquer, comme dans l'exemple suivant :</p>
88
89     <example>
90     Alias /foo/bar /baz<br />
91     Alias /foo /gaq
92     </example>
93
94     <p>Si l'ordre des directives &eacute;tait invers&eacute;, la directive <directive
95     module="mod_alias">Alias</directive> ayant pour argument
96     <code>/foo</code> serait toujours appliqu&eacute;e avant la directive
97     <directive module="mod_alias">Alias</directive> ayant pour argument
98     <code>/foo/bar</code>, et cette derni&egrave;re serait toujours
99     ignor&eacute;e.</p>
100
101 </section>
102
103 <directivesynopsis>
104 <name>Alias</name>
105 <description>Met en correspondance des URLs avec des chemins du syst&egrave;me
106 de fichiers</description>
107 <syntax>Alias <var>chemin URL</var>
108 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
109 <contextlist><context>server config</context><context>virtual host</context>
110 </contextlist>
111
112 <usage>
113
114     <p>La directive <directive>Alias</directive> permet de stocker des
115     documents (destin&eacute;s &agrave; &ecirc;tre servis) dans des zones du syst&egrave;me de
116     fichiers situ&eacute;es en dehors de l'arborescence du site web <directive
117     module="core">DocumentRoot</directive>. Les URLs dont le chemin
118     (d&eacute;cod&eacute; avec caract&egrave;res %) commence par <var>chemin URL</var> seront
119     mises en correspondance avec des fichiers locaux dont le chemin
120     commence par <var>chemin r&eacute;pertoire</var>. Le <var>chemin URL</var>
121     est sensible &agrave; la casse, m&ecirc;me sur les syst&egrave;mes de fichiers
122     insensibles &agrave; la casse.</p>
123
124     <example><title>Exemple :</title>
125       Alias /image /ftp/pub/image
126     </example>
127
128     <p>Une requ&ecirc;te pour <code>http://myserver/image/foo.gif</code> fera
129     renvoyer par le serveur le fichier
130     <code>/ftp/pub/image/foo.gif</code>. Seuls les &eacute;l&eacute;ments de chemin
131     complets sont test&eacute;s ; ainsi l'alias pr&eacute;c&eacute;dent ne conviendra pas
132     pour une requ&ecirc;te du style <code>http://myserver/imagefoo.gif</code>.
133     Pour des mises en correspondance plus complexes faisant intervenir
134     les expressions rationnelles, veuillez vous reporter &agrave; la directive
135     <directive module="mod_alias">AliasMatch</directive>.</p>
136
137     <p>Notez que si vous ajoutez un slash de fin au <var>chemin
138     URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la
139     requ&ecirc;te. Autrement dit, si vous d&eacute;finissez</p>
140
141     <dl><dd><code>Alias /icons/ /usr/local/apache/icons/</code></dd></dl>
142
143     <p>l'alias pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'url
144     <code>/icons</code>.</p>
145
146     <p>Notez qu'il pourra s'av&eacute;rer n&eacute;cessaire de d&eacute;finir des sections
147     <directive type="section" module="core">Directory</directive>
148     suppl&eacute;mentaires qui couvriront la  <em>destination</em> des alias.
149     Le traitement des alias intervenant avant le traitement des sections
150     <directive type="section" module="core">Directory</directive>,
151     seules les cibles des alias sont affect&eacute;es (Notez cependant
152     que les sections <directive type="section"
153     module="core">Location</directive> sont trait&eacute;es avant les alias, et
154     s'appliqueront donc).</p>
155
156     <p>En particulier, si vous cr&eacute;ez un alias ayant pour cible un
157     r&eacute;pertoire situ&eacute; en dehors de l'arborescence de votre site web
158     <directive module="core">DocumentRoot</directive>, vous devrez
159     probablement permettre explicitement l'acc&egrave;s &agrave; ce r&eacute;pertoire.</p>
160
161     <example><title>Exemple :</title>
162         Alias /image /ftp/pub/image<br />
163         &lt;Directory /ftp/pub/image&gt;<br />
164         <indent>
165             Order allow,deny<br />
166             Allow from all<br />
167         </indent>
168         &lt;/Directory&gt;
169     </example>
170
171 </usage>
172 </directivesynopsis>
173
174 <directivesynopsis>
175 <name>AliasMatch</name>
176 <description>Met en correspondance des URLs avec le syst&egrave;me de fichiers
177 en faisant intervenir les expressions rationnelles</description>
178 <syntax>AliasMatch <var>regex</var>
179 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
180 <contextlist><context>server config</context><context>virtual host</context>
181 </contextlist>
182
183 <usage>
184     <p>Cette directive est identique &agrave; la directive <directive
185     module="mod_alias">Alias</directive>, mais fait appel aux <glossary
186     ref="regex">expressions rationnelles</glossary>, &agrave; la place d'une
187     simple mise en correspondance de pr&eacute;fixe. L'expression rationnelle
188     fournie est mise en correspondance avec le chemin URL, et si elle
189     correspond, le serveur va substituer toute partie de chemin
190     correspondant &agrave; l'expression entre parenth&egrave;ses dans la cha&icirc;ne
191     fournie et l'utiliser comme nom de fichier.
192     Par exemple, pour activer le r&eacute;pertoire <code>/icons</code>, on peut
193     utiliser :</p>
194
195     <example>
196       AliasMatch ^/icons(.*) /usr/local/apache/icons$1
197     </example>
198
199     <p>On peut aussi construire un alias qui met en correspondance le
200     chemin URL sans tenir compte de la casse :</p>
201
202     <example>
203       AliasMatch (?i)^/image(.*) /ftp/pub/image$1
204     </example>
205
206 </usage>
207 </directivesynopsis>
208
209 <directivesynopsis>
210 <name>Redirect</name>
211 <description>Envoie une redirection externe demandant au client
212 d'effectuer une autre requ&ecirc;te avec une URL diff&eacute;rente</description>
213 <syntax>Redirect [<var>statut</var>] <var>chemin URL</var>
214 <var>URL</var></syntax>
215 <contextlist><context>server config</context><context>virtual host</context>
216 <context>directory</context><context>.htaccess</context></contextlist>
217 <override>FileInfo</override>
218
219 <usage>
220     <p>La directive Redirect permet de faire correspondre une ancienne
221     URL &agrave; une nouvelle en demandant au client d'aller chercher la ressource &agrave;
222     une autre localisation.</p>
223
224     <p>L'ancien <em>chemin URL</em> est un chemin sensible &agrave; la casse
225     (d&eacute;cod&eacute; &agrave; l'aide de caract&egrave;res %) commen&ccedil;ant par un slash. Les
226     chemins relatifs ne sont pas autoris&eacute;s.</p>
227
228     <p>La nouvelle <em>URL</em>
229     peut &ecirc;tre une URL absolue commen&ccedil;ant par un protocole et un nom
230     d'h&ocirc;te, mais on peut aussi utiliser un chemin URL commen&ccedil;ant par un
231     slash, auquel cas le protocole et le nom d'h&ocirc;te du serveur local
232     seront ajout&eacute;s.</p>
233
234     <p>Ensuite, toute requ&ecirc;te commen&ccedil;ant par <em>chemin URL</em> va
235     renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
236     &eacute;l&eacute;ment de chemin suppl&eacute;mentaire situ&eacute; en aval du <em>chemin
237     URL</em> sera ajout&eacute; &agrave; l'URL cible.</p>
238
239     <example><title>Exemple :</title>
240       # Redirige vers une URL sur un serveur diff&eacute;rent<br />
241       Redirect /service http://foo2.example.com/service<br />
242       <br />
243       # Redirige vers une URL sur le m&ecirc;me serveur<br />
244       Redirect /one /two
245     </example>
246
247     <p>Si le client effectue une requ&ecirc;te pour l'URL
248     <code>http://example.com/service/foo.txt</code>, il lui sera demand&eacute;
249     d'en effectuer une autre pour l'URL
250     <code>http://foo2.example.com/service/foo.txt</code>. Seuls les
251     &eacute;l&eacute;ments de chemin complets sont test&eacute;s, si bien que l'exemple
252     pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'URL
253     <code>http://example.com/servicefoo.txt</code>. Pour des mises en
254     correspondance plus complexes faisant intervenir les expressions
255     rationnelles, veuillez vous reporter &agrave; la directive <directive
256     module="mod_alias">RedirectMatch</directive>.</p>
257
258
259     <note><title>Note</title>
260     <p>Les directives de redirection ont priorit&eacute; sur les directives
261     Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le
262     fichier de configuration.</p></note>
263
264     <p>Si aucun argument <var>statut</var> n'est sp&eacute;cifi&eacute;, la
265     redirection sera temporaire (statut HTTP 302). Le client est alors
266     inform&eacute; que la ressource a &eacute;t&eacute; temporairement d&eacute;plac&eacute;e. On peut
267     utiliser l'argument <var>statut</var> pour renvoyer d'autres codes
268     de statut HTTP :</p>
269
270     <dl>
271       <dt>permanent</dt>
272
273       <dd>Renvoie un statut de redirection permanente (301), indiquant
274       que la ressource a &eacute;t&eacute; d&eacute;finitivement d&eacute;plac&eacute;e.</dd>
275
276       <dt>temp</dt>
277
278       <dd>Renvoie un statut de redirection temporaire (302). C'est le
279       comportement par d&eacute;faut.</dd>
280
281       <dt>seeother</dt>
282
283       <dd>Renvoie un statut "See Other" (303) indiquant que la ressource
284       a &eacute;t&eacute; remplac&eacute;e par une autre.</dd>
285
286       <dt>gone</dt>
287
288       <dd>Renvoie un statut "Gone" (410) indiquant que la ressource a
289       &eacute;t&eacute; d&eacute;finitivement supprim&eacute;e. Lorsque ce statut est d&eacute;fini, on ne
290       doit pas utiliser l'argument <var>URL</var>.</dd>
291     </dl>
292
293     <p>On peut renvoyer d'autres codes de statut en sp&eacute;cifiant le code
294     de statut num&eacute;rique comme valeur de l'argument of <var>statut</var>.
295     Si le code de statut est compris entre 300 et 399, l'argument
296     <var>URL</var> doit &ecirc;tre pr&eacute;sent, sinon il ne doit pas &ecirc;tre utilis&eacute;.
297     Notez que le statut doit &ecirc;tre connu du code d'Apache (voir la
298     fonction <code>send_error_response</code> dans
299     http_protocol.c).</p>
300
301     <example><title>Exemple :</title>
302       Redirect permanent /un http://example.com/deux<br />
303       Redirect 303 /trois http://example.com/autre
304     </example>
305
306 </usage>
307 </directivesynopsis>
308
309 <directivesynopsis>
310 <name>RedirectMatch</name>
311 <description>Envoie une redirection externe faisant appel aux
312 expressions rationnelles pour la mise en correspondance de l'URL
313 courante</description>
314 <syntax>RedirectMatch [<var>statut</var>] <var>regex</var>
315 <var>URL</var></syntax>
316 <contextlist><context>server config</context><context>virtual host</context>
317 <context>directory</context><context>.htaccess</context></contextlist>
318 <override>FileInfo</override>
319
320 <usage>
321     <p>Cette directive est identique &agrave; la directive <directive
322     module="mod_alias">Redirect</directive>, mais fait appel aux
323     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
324     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
325     rationnelle fournie est mise en correspondance avec le chemin URL,
326     et si elle correspond, le serveur va substituer toute partie de
327     chemin correspondante entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et
328     l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
329     les fichiers GIF vers les fichiers JPEG de m&ecirc;me nom sur un autre
330     serveur, on peut utiliser :</p>
331
332     <example>
333       RedirectMatch (.*)\.gif$ http://www.autre-serveur.com$1.jpg
334     </example>
335 </usage>
336 </directivesynopsis>
337
338 <directivesynopsis>
339 <name>RedirectTemp</name>
340 <description>Envoie une redirection externe temporaire demandant au
341 client d'effectuer une nouvelle requ&ecirc;te avec une URL
342 diff&eacute;rente</description>
343 <syntax>RedirectTemp <var>chemin URL</var> <var>URL</var></syntax>
344 <contextlist><context>server config</context><context>virtual host</context>
345 <context>directory</context><context>.htaccess</context></contextlist>
346 <override>FileInfo</override>
347
348 <usage>
349     <p>Cette directive informe le client que la redirection n'est
350     que temporaire (statut 302). Son comportement est exactement le m&ecirc;me
351     que celui de <code>Redirect temp</code>.</p>
352 </usage>
353 </directivesynopsis>
354
355 <directivesynopsis>
356 <name>RedirectPermanent</name>
357 <description>Envoie une redirection externe permanente demandant au
358 client d'effectuer une nouvelle requ&ecirc;te avec une URL
359 diff&eacute;rente</description>
360 <syntax>RedirectPermanent <var>chemin URL</var> <var>URL</var></syntax>
361 <contextlist><context>server config</context><context>virtual host</context>
362 <context>directory</context><context>.htaccess</context></contextlist>
363 <override>FileInfo</override>
364
365 <usage>
366     <p>Cette directive informe le client que la redirection est
367     permanente (statut 301). Son comportement est exactement le m&ecirc;me
368     que celui de <code>Redirect permanent</code>.</p>
369 </usage>
370 </directivesynopsis>
371
372 <directivesynopsis>
373 <name>ScriptAlias</name>
374 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
375 et d&eacute;signe la cible comme script CGI</description>
376 <syntax>ScriptAlias <var>chemin URL</var>
377 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
378 <contextlist><context>server config</context><context>virtual host</context>
379 </contextlist>
380
381 <usage>
382     <p>La directive <directive>ScriptAlias</directive> pr&eacute;sente le m&ecirc;me
383     comportement que la directive <directive
384     module="mod_alias">Alias</directive>, mais d&eacute;signe en plus le
385     r&eacute;pertoire cible comme conteneur de scripts CGI qui seront trait&eacute;es
386     par le gestionnaire cgi-script du module <module>mod_cgi</module>.
387     Les URLs dont le chemin URL sensible &agrave; la casse (d&eacute;cod&eacute; avec
388     caract&egrave;res %) commence par <var>chemin URL</var> seront mises en
389     correspondance avec les scripts dont le chemin commence par le
390     second argument, qui est un chemin complet dans le syst&egrave;me de
391     fichiers local.</p>
392
393     <example><title>Exemple :</title>
394       ScriptAlias /cgi-bin/ /web/cgi-bin/
395     </example>
396
397     <p>Une requ&ecirc;te pour <code>http://mon-serveur/cgi-bin/foo</code>
398     ferait ex&eacute;cuter par le serveur le script
399     <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
400     &eacute;quivalente &agrave; :</p>
401     <example>
402       Alias /cgi-bin/ /web/cgi-bin/<br />
403       &lt;Location /cgi-bin &gt;<br />
404       <indent>
405       SetHandler cgi-script<br />
406       Options +ExecCGI<br />
407       </indent>
408       &lt;/Location&gt;
409     </example>
410
411         <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
412         avec un script ou gestionnaire de votre cru. Par exemple :</p>
413
414         <example>
415           ScriptAlias /cgi-bin/ /web/cgi-handler.pl
416     </example>
417
418     <p>Dans ce sc&eacute;nario, tous les fichiers faisant l'objet d'une requ&ecirc;te
419     dans <code>/cgi-bin/</code> seront trait&eacute;s par le fichier que vous
420     avez sp&eacute;cifi&eacute;, ce qui vous permet d'utiliser votre propre
421     gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
422     les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
423
424     <note type="warning">Il est pr&eacute;f&eacute;rable d'&eacute;viter de placer les
425     scripts CGI dans l'arborescence de <directive
426     module="core">DocumentRoot</directive> afin d'&eacute;viter de r&eacute;v&eacute;ler
427     accidentellement leur code source lors d'une modification de
428     configuration. On y parvient ais&eacute;ment avec
429     <directive>ScriptAlias</directive> en mettant en correspondance une
430     URL et en d&eacute;signant la cible comme scripts CGI par la m&ecirc;me occasion.
431     Si vous choisissez de placer vos scripts CGI dans un r&eacute;pertoire
432     accessible depuis le web, n'utilisez pas
433     <directive>ScriptAlias</directive>. Utilisez plut&ocirc;t <directive
434     module="core" type="section">Directory</directive>, <directive
435     module="core">SetHandler</directive>, et <directive
436     module="core">Options</directive> comme dans l'exemple suivant :
437     <example>
438       &lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;<br />
439       <indent>
440       SetHandler cgi-script<br />
441       Options ExecCGI<br />
442       </indent>
443       &lt;/Directory&gt;
444     </example>
445     Ceci est n&eacute;cessaire car plusieurs <var>chemins URL</var> peuvent
446     correspondre &agrave; la m&ecirc;me zone du syst&egrave;me de fichiers, court-circuitant
447     ainsi la directive <directive>ScriptAlias</directive> et r&eacute;v&eacute;lant le
448     code source des scripts CGI s'ils ne sont pas prot&eacute;g&eacute;s par une
449     section <directive module="core">Directory</directive>.</note>
450
451 </usage>
452 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
453 </directivesynopsis>
454
455 <directivesynopsis>
456 <name>ScriptAliasMatch</name>
457 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
458 en faisant appel aux expressions rationnelles et en d&eacute;signant la cible
459 comme un script CGI</description>
460 <syntax>ScriptAliasMatch <var>regex</var>
461 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
462 <contextlist><context>server config</context><context>virtual host</context>
463 </contextlist>
464
465 <usage>
466     <p>Cette directive est &eacute;quivalente &agrave; la directive <directive
467     module="mod_alias">ScriptAlias</directive>, mais fait appel aux
468     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
469     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
470     rationnelle fournie est mise en correspondance avec le chemin URL,
471     et si elle correspond, le serveur va substituer toute partie de
472     chemin entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et l'utiliser
473     comme nom de fichier. Par exemple, pour activer le r&eacute;pertoire
474     standard <code>/cgi-bin</code>, on peut utiliser :</p>
475
476     <example>
477       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
478     </example>
479 </usage>
480 </directivesynopsis>
481
482 </modulesynopsis>