]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_alias.xml.fr
rebuild
[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: 1653941:1673517 (outdated) -->
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>Lorsque les directives <directive
55     module="mod_alias">Alias</directive>, <directive
56     module="mod_alias">ScriptAlias</directive> ou <directive
57     module="mod_alias">Redirect</directive> sont d&eacute;finies au sein d'une
58     section <directive type="section" module="core">Location</directive>
59     ou <directive type="section"
60     module="core">LocationMatch</directive>, vous pouvez utiliser la <a
61     href="../expr.html">syntaxe des expressions</a> pour manipuler l'URL
62     ou le chemin de destination.
63         </p>
64
65     <p><module>mod_alias</module> est con&ccedil;u pour traiter des t&acirc;ches
66     simples de manipulation d'URL. Pour des t&acirc;ches plus complexes comme
67     la manipulation des cha&icirc;nes d'arguments des requ&ecirc;tes, utilisez
68     plut&ocirc;t les outils fournis par le module <module>mod_rewrite</module></p>
69
70 </summary>
71
72 <seealso><module>mod_rewrite</module></seealso> <seealso><a
73 href="../urlmapping.html">Mise en correspondance des URLs avec le
74 syst&egrave;me de fichiers</a></seealso>
75
76 <section id="order"><title>Chronologie du traitement</title>
77
78     <p>Les alias et redirections apparaissant dans diff&eacute;rents contextes
79     sont trait&eacute;s comme les autres directives en respectant les <a
80     href="../sections.html#mergin">r&egrave;gles de fusion</a> standards. Par
81     contre, ils sont trait&eacute;s selon une chronologie particuli&egrave;re
82     lorsqu'ils apparaissent dans le m&ecirc;me contexte (par exemple, dans la
83     m&ecirc;me section <directive type="section"
84     module="core">VirtualHost</directive>).</p>
85
86     <p>Premi&egrave;rement, toutes les redirections sont trait&eacute;es avant les
87     alias, et ainsi, une requ&ecirc;te qui correspond &agrave; une directive
88     <directive module="mod_alias">Redirect</directive> ou <directive
89     module="mod_alias">RedirectMatch</directive> ne se verra jamais
90     appliquer d'alias. Deuxi&egrave;mement, les alias et redirections sont
91     trait&eacute;s selon l'ordre dans lequel ils apparaissent dans le fichier
92     de configuration, seule la premi&egrave;re correspondance &eacute;tant prise en
93     compte.</p>
94
95     <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
96     m&ecirc;me sous-r&eacute;pertoire, vous devez classer les chemins du plus pr&eacute;cis
97     au moins pr&eacute;cis afin que toutes les directives puissent
98     &eacute;ventuellement s'appliquer, comme dans l'exemple suivant :</p>
99
100     <highlight language="config">
101 Alias /foo/bar /baz
102 Alias /foo /gaq
103     </highlight>
104
105     <p>Si l'ordre des directives &eacute;tait invers&eacute;, la directive <directive
106     module="mod_alias">Alias</directive> ayant pour argument
107     <code>/foo</code> serait toujours appliqu&eacute;e avant la directive
108     <directive module="mod_alias">Alias</directive> ayant pour argument
109     <code>/foo/bar</code>, et cette derni&egrave;re serait toujours
110     ignor&eacute;e.</p>
111
112     <p>La d&eacute;finition de directives <directive
113     module="mod_alias">Alias</directive>, <directive
114     module="mod_alias">ScriptAlias</directive> ou <directive
115     module="mod_alias">Redirect</directive> au sein de sections
116     <directive type="section" module="core">Location</directive> ou
117     <directive type="section" module="core">LocationMatch</directive>
118     l'emporte sur d'autres d&eacute;finitions &eacute;ventuelles de ces m&ecirc;mes
119     directives au niveau de la configuration g&eacute;n&eacute;rale du serveur.</p>
120
121 </section>
122
123 <directivesynopsis>
124 <name>Alias</name>
125 <description>Met en correspondance des URLs avec des chemins du syst&egrave;me
126 de fichiers</description>
127 <syntax>Alias [<var>chemin URL</var>]
128 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
129 <contextlist><context>server config</context><context>virtual host</context>
130 </contextlist>
131
132 <usage>
133
134     <p>La directive <directive>Alias</directive> permet de stocker des
135     documents (destin&eacute;s &agrave; &ecirc;tre servis) dans des zones du syst&egrave;me de
136     fichiers situ&eacute;es en dehors de l'arborescence du site web <directive
137     module="core">DocumentRoot</directive>. Les URLs dont le chemin
138     (d&eacute;cod&eacute; avec caract&egrave;res %) commence par <var>chemin URL</var> seront
139     mises en correspondance avec des fichiers locaux dont le chemin
140     commence par <var>chemin r&eacute;pertoire</var>. Le <var>chemin URL</var>
141     est sensible &agrave; la casse, m&ecirc;me sur les syst&egrave;mes de fichiers
142     insensibles &agrave; la casse.</p>
143
144     <highlight language="config">
145       Alias /image /ftp/pub/image
146     </highlight>
147
148     <p>Une requ&ecirc;te pour <code>http://example.com/image/foo.gif</code> fera
149     renvoyer par le serveur le fichier
150     <code>/ftp/pub/image/foo.gif</code>. Seuls les &eacute;l&eacute;ments de chemin
151     complets sont test&eacute;s ; ainsi l'alias pr&eacute;c&eacute;dent ne conviendra pas
152     pour une requ&ecirc;te du style <code>http://example.com/imagefoo.gif</code>.
153     Pour des mises en correspondance plus complexes faisant intervenir
154     les expressions rationnelles, veuillez vous reporter &agrave; la directive
155     <directive module="mod_alias">AliasMatch</directive>.</p>
156
157     <p>Notez que si vous ajoutez un slash de fin au <var>chemin
158     URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la
159     requ&ecirc;te. Autrement dit, si vous d&eacute;finissez</p>
160
161     <highlight language="config">
162       Alias /icons/ /usr/local/apache/icons/
163     </highlight>
164
165     <p>l'alias pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'url
166     <code>/icons</code> &agrave; cause de l'absence du slash final. Ainsi, si
167     le slash final est absent du <var>chemin de l'URL</var>, il doit
168     aussi l'&ecirc;tre du <var>chemin du fichier</var>.</p>
169
170     <p>Notez qu'il pourra s'av&eacute;rer n&eacute;cessaire de d&eacute;finir des sections
171     <directive type="section" module="core">Directory</directive>
172     suppl&eacute;mentaires qui couvriront la  <em>destination</em> des alias.
173     Le traitement des alias intervenant avant le traitement des sections
174     <directive type="section" module="core">Directory</directive>,
175     seules les cibles des alias sont affect&eacute;es (Notez cependant
176     que les sections <directive type="section"
177     module="core">Location</directive> sont trait&eacute;es avant les alias, et
178     s'appliqueront donc).</p>
179
180     <p>En particulier, si vous cr&eacute;ez un alias ayant pour cible un
181     r&eacute;pertoire situ&eacute; en dehors de l'arborescence de votre site web
182     <directive module="core">DocumentRoot</directive>, vous devrez
183     probablement permettre explicitement l'acc&egrave;s &agrave; ce r&eacute;pertoire.</p>
184
185     <highlight language="config">
186 Alias /image /ftp/pub/image
187 &lt;Directory /ftp/pub/image&gt;
188     Require all granted
189 &lt;/Directory&gt;
190     </highlight>
191
192     <p>Le nombre de slashes dans le param&egrave;tre <var>chemin URL</var> doit
193     correspondre au nombre de slashes dans le chemin URL de la requ&ecirc;te.</p>
194
195     <p>Si la directive <directive>Alias</directive> est d&eacute;finie au sein
196     d'une section <directive type="section"
197     module="core">Location</directive> ou <directive type="section"
198     module="core">LocationMatch</directive>, <var>chemin URL</var> est
199     omis et <var>chemin fichier</var> est interpr&eacute;t&eacute; en utilisant la <a
200     href="../expr.html">syntaxe des expressions</a>.</p>
201
202     <highlight language="config">
203 &lt;Location /image&gt;
204     Alias /ftp/pub/image
205 &lt;/Location&gt;
206 &lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
207     Alias /usr/local/apache/errors/%{env:MATCH_NUMBER}.html
208 &lt;/LocationMatch&gt;
209     </highlight>
210
211 </usage>
212 </directivesynopsis>
213
214 <directivesynopsis>
215 <name>AliasMatch</name>
216 <description>Met en correspondance des URLs avec le syst&egrave;me de fichiers
217 en faisant intervenir les expressions rationnelles</description>
218 <syntax>AliasMatch <var>regex</var>
219 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
220 <contextlist><context>server config</context><context>virtual host</context>
221 </contextlist>
222
223 <usage>
224     <p>Cette directive est identique &agrave; la directive <directive
225     module="mod_alias">Alias</directive>, mais fait appel aux <glossary
226     ref="regex">expressions rationnelles</glossary>, &agrave; la place d'une
227     simple mise en correspondance de pr&eacute;fixe. L'expression rationnelle
228     fournie est mise en correspondance avec le chemin URL, et si elle
229     correspond, le serveur va substituer toute partie de chemin
230     correspondant &agrave; l'expression entre parenth&egrave;ses dans la cha&icirc;ne
231     fournie et l'utiliser comme nom de fichier.
232     Par exemple, pour activer le r&eacute;pertoire <code>/icons</code>, on peut
233     utiliser :</p>
234
235     <highlight language="config">
236       AliasMatch ^/icons(.*) /usr/local/apache/icons$1
237     </highlight>
238
239     <p>Toute la puissance des <glossary ref="regex">expressions
240     rationnelles</glossary> peut &ecirc;tre mise &agrave; contribution. Par exemple,
241     il est possible de construire un alias avec un mod&egrave;le de chemin URL
242     insensible &agrave; la casse :</p>
243
244     <highlight language="config">
245       AliasMatch (?i)^/image(.*) /ftp/pub/image$1
246     </highlight>
247
248     <p>Il existe une diff&eacute;rence subtile entre <directive
249     module="mod_alias">Alias</directive> et <directive
250     module="mod_alias">AliasMatch</directive> : <directive
251     module="mod_alias">Alias</directive> copie automatiquement toute
252     portion suppl&eacute;mentaire de l'URI situ&eacute;e apr&egrave;s la partie du mod&egrave;le qui
253     correspond, &agrave; la fin du chemin du fichier de la partie droite, alors
254     que <directive module="mod_alias">AliasMatch</directive> ne le fait
255     pas. Cela signifie qu'il sera pr&eacute;f&eacute;rable dans la plupart des cas de
256     comparer l'expression rationnelle du mod&egrave;le &agrave; la totalit&eacute; de l'URI
257     de la requ&ecirc;te, et d'utiliser les substitutions dans la partie
258     droite.</p>
259
260     <p>En d'autres termes, le remplacement d'<directive
261     module="mod_alias">Alias</directive> par <directive
262     module="mod_alias">AliasMatch</directive> ne produira pas le m&ecirc;me
263     r&eacute;sultat. Au minimum, vous devez ajouter <code>^</code> au d&eacute;but de
264     l'expression rationnelle, <code>(.*)$</code> &agrave; sa fin et
265     <code>$1</code> &agrave; la fin de la cha&icirc;ne de remplacement.</p>
266
267     <p>Par exemple, supposons que nous voulions reformuler cet alias
268     avec AliasMatch :</p>
269
270     <highlight language="config">
271       Alias /image/ /ftp/pub/image/
272     </highlight>
273
274     <p>Le simple remplacement d'Alias par AliasMatch ne produira pas le
275     m&ecirc;me r&eacute;sultat. Ainsi, ce qui suit va rediriger toutes les requ&ecirc;tes
276     qui contiennent /image/ vers /ftp/pub/image/ :</p>
277
278     <highlight language="config">
279       AliasMatch /image/ /ftp/pub/image/
280     </highlight>
281
282     <p>Voici la directive AliasMatch qui produira le m&ecirc;me r&eacute;sultat que
283     la directive Alias ci-dessus :</p>
284
285     <highlight language="config">
286       AliasMatch ^/image/(.*)$ /ftp/pub/image/$1
287     </highlight>
288
289     <p>Bien entendu, il n'y a aucune raison d'utiliser <directive
290     module="mod_alias">AliasMatch</directive> dans le cas o&ugrave; <directive
291     module="mod_alias">Alias</directive> suffit. <directive
292     module="mod_alias">AliasMatch</directive> vous permet d'effectuer
293     des choses beaucoup plus sophistiqu&eacute;es. Par exemple, vous pouvez
294     servir diff&eacute;rentes sortes de fichiers &agrave; partir de r&eacute;pertoires
295     diff&eacute;rents :</p>
296
297     <highlight language="config">
298       AliasMatch ^/image/(.*)\.jpg$ /fichiers/jpg.images/$1.jpg<br/>
299       AliasMatch ^/image/(.*)\.gif$ /fichiers/gif.images/$1.gif
300     </highlight>
301
302     <p>Les &eacute;ventuels slashes de t&ecirc;te multiples seront supprim&eacute;s par le
303     serveur avant que les directives de ce module n'effectuent des
304     comparaisons avec le chemin URL de la requ&ecirc;te.
305     </p>
306
307 </usage>
308 </directivesynopsis>
309
310 <directivesynopsis>
311 <name>Redirect</name>
312 <description>Envoie une redirection externe demandant au client
313 d'effectuer une autre requ&ecirc;te avec une URL diff&eacute;rente</description>
314 <syntax>Redirect [<var>&eacute;tat</var>] [<var>chemin URL</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>La directive Redirect permet de faire correspondre une ancienne
322     URL &agrave; une nouvelle en demandant au client d'aller chercher la ressource &agrave;
323     une autre localisation.</p>
324
325     <p>L'ancien <em>chemin URL</em> est un chemin sensible &agrave; la casse
326     (d&eacute;cod&eacute; &agrave; l'aide de caract&egrave;res %) commen&ccedil;ant par un slash. Les
327     chemins relatifs ne sont pas autoris&eacute;s.</p>
328
329     <p>La nouvelle <em>URL</em>
330     peut &ecirc;tre une URL absolue commen&ccedil;ant par un protocole et un nom
331     d'h&ocirc;te, mais on peut aussi utiliser un chemin URL commen&ccedil;ant par un
332     slash, auquel cas le protocole et le nom d'h&ocirc;te du serveur local
333     seront ajout&eacute;s.</p>
334
335     <p>Ensuite, toute requ&ecirc;te commen&ccedil;ant par <em>chemin URL</em> va
336     renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
337     &eacute;l&eacute;ment de chemin suppl&eacute;mentaire situ&eacute; en aval du <em>chemin
338     URL</em> sera ajout&eacute; &agrave; l'URL cible.</p>
339
340     <highlight language="config">
341 # Redirige vers une URL sur un serveur diff&eacute;rent
342 Redirect /service http://foo2.example.com/service
343
344 # Redirige vers une URL sur le m&ecirc;me serveur
345 Redirect /one /two
346     </highlight>
347
348     <p>Si le client effectue une requ&ecirc;te pour l'URL
349     <code>http://example.com/service/foo.txt</code>, il lui sera demand&eacute;
350     d'en effectuer une autre pour l'URL
351     <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne
352     les requ&ecirc;tes avec param&egrave;tres <code>GET</code>, comme
353     <code>http://example.com/service/foo.pl?q=23&amp;a=42</code>, qui
354     seront redirig&eacute;es vers
355     <code>http://foo2.example.com/service/foo.pl?q=23&amp;a=42</code>.
356     Notez que les <code>POST</code>s seront ignor&eacute;s.<br />
357     Seuls les
358     &eacute;l&eacute;ments de chemin complets sont test&eacute;s, si bien que l'exemple
359     pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'URL
360     <code>http://example.com/servicefoo.txt</code>. Pour des mises en
361     correspondance plus complexes utilisant la <a
362     href="../expr.html">syntaxe des expressions</a>, ne sp&eacute;cifiez pas
363     d'argument <var>chemin URL</var> comme d&eacute;crit ci-dessous. En outre,
364     pour une mise en correspondance en utilisant les expressions
365     rationnelles, veuillez vous reporter &agrave; la directive <directive
366     module="mod_alias">RedirectMatch</directive>.</p>
367
368
369     <note><title>Note</title>
370     <p>Les directives de redirection ont priorit&eacute; sur les directives
371     Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le
372     fichier de configuration. Les directives Redirect d&eacute;finies au sein
373     d'une section Location l'emportent sur les directives Redirect et
374     Alias comportant un argument <var>chemin URL</var>.</p></note>
375
376     <p>Si aucun argument <var>&eacute;tat</var> n'est sp&eacute;cifi&eacute;, la
377     redirection sera temporaire (code HTTP 302). Le client est alors
378     inform&eacute; que la ressource a &eacute;t&eacute; temporairement d&eacute;plac&eacute;e. On peut
379     utiliser l'argument <var>&eacute;tat</var> pour renvoyer d'autres codes HTTP :</p>
380
381     <dl>
382       <dt>permanent</dt>
383
384       <dd>Renvoie un code de redirection permanente (301), indiquant
385       que la ressource a &eacute;t&eacute; d&eacute;finitivement d&eacute;plac&eacute;e.</dd>
386
387       <dt>temp</dt>
388
389       <dd>Renvoie un code de redirection temporaire (302). C'est le
390       comportement par d&eacute;faut.</dd>
391
392       <dt>seeother</dt>
393
394       <dd>Renvoie un code "See Other" (303) indiquant que la ressource
395       a &eacute;t&eacute; remplac&eacute;e par une autre.</dd>
396
397       <dt>gone</dt>
398
399       <dd>Renvoie un code "Gone" (410) indiquant que la ressource a
400       &eacute;t&eacute; d&eacute;finitivement supprim&eacute;e. Lorsque
401       ce code est utilis&eacute;, on ne
402       doit pas utiliser l'argument <var>URL</var>.</dd>
403     </dl>
404
405     <p>On peut renvoyer d'autres codes en sp&eacute;cifiant le code
406     num&eacute;rique comme valeur de l'argument of <var>&eacute;tat</var>.
407     Si le code est compris entre 300 et 399, l'argument
408     <var>URL</var> doit &ecirc;tre pr&eacute;sent. Si le code
409     n'est <em>pas</em> compris entre 300 et 399, l'argument
410     <var>URL</var> ne doit pas appara&icirc;tre. Le code doit &ecirc;tre un code
411     HTTP valide, connu du serveur HTTP Apache (voir la
412     fonction <code>send_error_response</code> dans
413     http_protocol.c).</p>
414
415     <highlight language="config">
416 Redirect permanent /one http://example.com/two
417 Redirect 303 /three http://example.com/other
418     </highlight>
419
420     <p>Si une directive <directive>Redirect</directive> est d&eacute;finie au
421     sein d'une section <directive type="section"
422     module="core">Location</directive> ou <directive type="section"
423     module="core">LocationMatch</directive> et si l'argument <var>chemin
424     URL</var> est omis, l'argument <var>URL</var> sera interpr&eacute;t&eacute; en
425     utilisant la <a href="../expr.html">syntaxe des expressions</a>.</p>
426
427     <highlight language="config">
428 &lt;Location /one&gt;
429     Redirect permanent http://example.com/two
430 &lt;/Location&gt;<br />
431 &lt;Location /three&gt;
432     Redirect 303 http://example.com/other
433 &lt;/Location&gt;<br />
434 &lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
435     Redirect permanent http://example.com/errors/%{env:MATCH_NUMBER}.html
436 &lt;/LocationMatch&gt;<br />
437     </highlight>
438
439 </usage>
440 </directivesynopsis>
441
442 <directivesynopsis>
443 <name>RedirectMatch</name>
444 <description>Envoie une redirection externe faisant appel aux
445 expressions rationnelles pour la mise en correspondance de l'URL
446 courante</description>
447 <syntax>RedirectMatch [<var>&eacute;tat</var>] <var>regex</var>
448 <var>URL</var></syntax>
449 <contextlist><context>server config</context><context>virtual host</context>
450 <context>directory</context><context>.htaccess</context></contextlist>
451 <override>FileInfo</override>
452
453 <usage>
454     <p>Cette directive est identique &agrave; la directive <directive
455     module="mod_alias">Redirect</directive>, mais fait appel aux
456     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
457     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
458     rationnelle fournie est mise en correspondance avec le chemin URL,
459     et si elle correspond, le serveur va substituer toute partie de
460     chemin correspondante entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et
461     l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
462     les fichiers GIF vers les fichiers JPEG de m&ecirc;me nom sur un autre
463     serveur, on peut utiliser :</p>
464
465     <highlight language="config">
466       RedirectMatch (.*)\.gif$ http://autre.example.com$1.jpg
467     </highlight>
468
469     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
470     module="mod_alias">Alias</directive> et <directive
471     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
472     diff&eacute;rence entre les directives <directive
473     module="mod_alias">Redirect</directive> et <directive
474     module="mod_alias">RedirectMatch</directive>. Voir la directive
475     <directive module="mod_alias">AliasMatch</directive> pour plus de
476     d&eacute;tails.</p>
477
478 </usage>
479 </directivesynopsis>
480
481 <directivesynopsis>
482 <name>RedirectTemp</name>
483 <description>Envoie une redirection externe temporaire demandant au
484 client d'effectuer une nouvelle requ&ecirc;te avec une URL
485 diff&eacute;rente</description>
486 <syntax>RedirectTemp <var>chemin URL</var> <var>URL</var></syntax>
487 <contextlist><context>server config</context><context>virtual host</context>
488 <context>directory</context><context>.htaccess</context></contextlist>
489 <override>FileInfo</override>
490
491 <usage>
492     <p>Cette directive informe le client que la redirection n'est
493     que temporaire (code 302). Son comportement est exactement le m&ecirc;me
494     que celui de <code>Redirect temp</code>.</p>
495 </usage>
496 </directivesynopsis>
497
498 <directivesynopsis>
499 <name>RedirectPermanent</name>
500 <description>Envoie une redirection externe permanente demandant au
501 client d'effectuer une nouvelle requ&ecirc;te avec une URL
502 diff&eacute;rente</description>
503 <syntax>RedirectPermanent <var>chemin URL</var> <var>URL</var></syntax>
504 <contextlist><context>server config</context><context>virtual host</context>
505 <context>directory</context><context>.htaccess</context></contextlist>
506 <override>FileInfo</override>
507
508 <usage>
509     <p>Cette directive informe le client que la redirection est
510     permanente (code 301). Son comportement est exactement le m&ecirc;me
511     que celui de <code>Redirect permanent</code>.</p>
512 </usage>
513 </directivesynopsis>
514
515 <directivesynopsis>
516 <name>ScriptAlias</name>
517 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
518 et d&eacute;signe la cible comme script CGI</description>
519 <syntax>ScriptAlias [<var>chemin URL</var>]
520 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
521 <contextlist><context>server config</context><context>virtual host</context>
522 <context>directory</context>
523 </contextlist>
524
525 <usage>
526     <p>La directive <directive>ScriptAlias</directive> pr&eacute;sente le m&ecirc;me
527     comportement que la directive <directive
528     module="mod_alias">Alias</directive>, mais d&eacute;signe en plus le
529     r&eacute;pertoire cible comme conteneur de scripts CGI qui seront trait&eacute;es
530     par le gestionnaire cgi-script du module <module>mod_cgi</module>.
531     Les URLs dont le chemin URL sensible &agrave; la casse (d&eacute;cod&eacute; avec
532     caract&egrave;res %) commence par <var>chemin URL</var> seront mises en
533     correspondance avec les scripts dont le chemin commence par le
534     second argument, qui est un chemin complet dans le syst&egrave;me de
535     fichiers local.</p>
536
537     <highlight language="config">
538       ScriptAlias /cgi-bin/ /web/cgi-bin/
539     </highlight>
540
541     <p>Une requ&ecirc;te pour <code>http://example.com/cgi-bin/foo</code>
542     ferait ex&eacute;cuter par le serveur le script
543     <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
544     &eacute;quivalente &agrave; :</p>
545     <highlight language="config">
546 Alias /cgi-bin/ /web/cgi-bin/
547 &lt;Location /cgi-bin &gt;
548     SetHandler cgi-script
549     Options +ExecCGI
550 &lt;/Location&gt;
551     </highlight>
552
553         <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
554         avec un script ou gestionnaire de votre cru. Par exemple :</p>
555
556         <highlight language="config">
557           ScriptAlias /cgi-bin/ /web/cgi-handler.pl
558     </highlight>
559
560     <p>Dans ce sc&eacute;nario, tous les fichiers faisant l'objet d'une requ&ecirc;te
561     dans <code>/cgi-bin/</code> seront trait&eacute;s par le fichier que vous
562     avez sp&eacute;cifi&eacute;, ce qui vous permet d'utiliser votre propre
563     gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
564     les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
565
566     <note type="warning">Il est pr&eacute;f&eacute;rable d'&eacute;viter de placer les
567     scripts CGI dans l'arborescence de <directive
568     module="core">DocumentRoot</directive> afin d'&eacute;viter de r&eacute;v&eacute;ler
569     accidentellement leur code source lors d'une modification de
570     configuration. On y parvient ais&eacute;ment avec
571     <directive>ScriptAlias</directive> en mettant en correspondance une
572     URL et en d&eacute;signant la cible comme scripts CGI par la m&ecirc;me occasion.
573     Si vous choisissez de placer vos scripts CGI dans un r&eacute;pertoire
574     accessible depuis le web, n'utilisez pas
575     <directive>ScriptAlias</directive>. Utilisez plut&ocirc;t <directive
576     module="core" type="section">Directory</directive>, <directive
577     module="core">SetHandler</directive>, et <directive
578     module="core">Options</directive> comme dans l'exemple suivant :
579     <highlight language="config">
580 &lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;
581     SetHandler cgi-script
582     Options ExecCGI
583 &lt;/Directory&gt;
584     </highlight>
585     Ceci est n&eacute;cessaire car plusieurs <var>chemins URL</var> peuvent
586     correspondre &agrave; la m&ecirc;me zone du syst&egrave;me de fichiers, court-circuitant
587     ainsi la directive <directive>ScriptAlias</directive> et r&eacute;v&eacute;lant le
588     code source des scripts CGI s'ils ne sont pas prot&eacute;g&eacute;s par une
589     section <directive module="core">Directory</directive>.</note>
590
591     <p>Si la directive <directive>ScriptAlias</directive> est d&eacute;finie au
592     sein d'une section <directive type="section"
593     module="core">Location</directive> ou <directive type="section"
594     module="core">LocationMatch</directive> et si l'argument <var>chemin
595     URL</var> est omis, l'argument <var>URL</var> sera interpr&eacute;t&eacute; en
596     utilisant la <a href="../expr.html">syntaxe des expressions</a>.</p>
597
598     <highlight language="config">
599 &lt;Location /cgi-bin &gt;
600     ScriptAlias /web/cgi-bin/
601 &lt;/Location&gt;
602 &lt;LocationMatch /cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)&gt;
603     ScriptAlias /web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi
604 &lt;/LocationMatch&gt;<br />
605     </highlight>
606
607 </usage>
608 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
609 </directivesynopsis>
610
611 <directivesynopsis>
612 <name>ScriptAliasMatch</name>
613 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
614 en faisant appel aux expressions rationnelles et en d&eacute;signant la cible
615 comme un script CGI</description>
616 <syntax>ScriptAliasMatch <var>regex</var>
617 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
618 <contextlist><context>server config</context><context>virtual host</context>
619 </contextlist>
620
621 <usage>
622     <p>Cette directive est &eacute;quivalente &agrave; la directive <directive
623     module="mod_alias">ScriptAlias</directive>, mais fait appel aux
624     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
625     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
626     rationnelle fournie est mise en correspondance avec le chemin URL,
627     et si elle correspond, le serveur va substituer toute partie de
628     chemin entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et l'utiliser
629     comme nom de fichier. Par exemple, pour activer le r&eacute;pertoire
630     standard <code>/cgi-bin</code>, on peut utiliser :</p>
631
632     <highlight language="config">
633       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
634     </highlight>
635
636     <p>Comme dans le cas d'AliasMatch, toute la puissance des <glossary
637     ref="rexex">expressions rationnelles</glossary> peut &ecirc;tre mise &agrave;
638     contribution. Par exemple, il est possible de construire un alias
639     avec une comparaison du mod&egrave;le du chemin URL insensible &agrave; la casse :</p>
640
641     <highlight language="config">
642       ScriptAliasMatch (?i)^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
643     </highlight>
644
645     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
646     module="mod_alias">Alias</directive> et <directive
647     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
648     diff&eacute;rence entre les directives <directive
649     module="mod_alias">ScriptAlias</directive> et <directive
650     module="mod_alias">ScriptAliasMatch</directive>. Voir la directive
651     <directive module="mod_alias">AliasMatch</directive> pour plus de
652     d&eacute;tails.</p>
653
654 </usage>
655 </directivesynopsis>
656
657 </modulesynopsis>