]> 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 : 1422375 -->
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     <highlight language="config">
90 Alias /foo/bar /baz
91 Alias /foo /gaq
92     </highlight>
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     <highlight language="config">
125       Alias /image /ftp/pub/image
126     </highlight>
127
128     <p>Une requ&ecirc;te pour <code>http://example.com/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://example.com/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> &agrave; cause de l'absence du slash final. Ainsi, si
145     le slash final est absent du <var>chemin de l'URL</var>, il doit
146     aussi l'&ecirc;tre du <var>chemin du fichier</var>.</p>
147
148     <p>Notez qu'il pourra s'av&eacute;rer n&eacute;cessaire de d&eacute;finir des sections
149     <directive type="section" module="core">Directory</directive>
150     suppl&eacute;mentaires qui couvriront la  <em>destination</em> des alias.
151     Le traitement des alias intervenant avant le traitement des sections
152     <directive type="section" module="core">Directory</directive>,
153     seules les cibles des alias sont affect&eacute;es (Notez cependant
154     que les sections <directive type="section"
155     module="core">Location</directive> sont trait&eacute;es avant les alias, et
156     s'appliqueront donc).</p>
157
158     <p>En particulier, si vous cr&eacute;ez un alias ayant pour cible un
159     r&eacute;pertoire situ&eacute; en dehors de l'arborescence de votre site web
160     <directive module="core">DocumentRoot</directive>, vous devrez
161     probablement permettre explicitement l'acc&egrave;s &agrave; ce r&eacute;pertoire.</p>
162
163     <highlight language="config">
164 Alias /image /ftp/pub/image
165 &lt;Directory /ftp/pub/image&gt;
166     Require all granted
167 &lt;/Directory&gt;
168     </highlight>
169
170     <p>Le nombre de slashes dans le paramètre <var>chemin URL</var> doit
171     correspondre au nombre de slashes dans le chemin URL de la requête.</p>
172
173 </usage>
174 </directivesynopsis>
175
176 <directivesynopsis>
177 <name>AliasMatch</name>
178 <description>Met en correspondance des URLs avec le syst&egrave;me de fichiers
179 en faisant intervenir les expressions rationnelles</description>
180 <syntax>AliasMatch <var>regex</var>
181 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
182 <contextlist><context>server config</context><context>virtual host</context>
183 </contextlist>
184
185 <usage>
186     <p>Cette directive est identique &agrave; la directive <directive
187     module="mod_alias">Alias</directive>, mais fait appel aux <glossary
188     ref="regex">expressions rationnelles</glossary>, &agrave; la place d'une
189     simple mise en correspondance de pr&eacute;fixe. L'expression rationnelle
190     fournie est mise en correspondance avec le chemin URL, et si elle
191     correspond, le serveur va substituer toute partie de chemin
192     correspondant &agrave; l'expression entre parenth&egrave;ses dans la cha&icirc;ne
193     fournie et l'utiliser comme nom de fichier.
194     Par exemple, pour activer le r&eacute;pertoire <code>/icons</code>, on peut
195     utiliser :</p>
196
197     <highlight language="config">
198       AliasMatch ^/icons(.*) /usr/local/apache/icons$1
199     </highlight>
200
201     <p>Toute la puissance des <glossary ref="regex">expressions
202     rationnelles</glossary> peut &ecirc;tre mise &agrave; contribution. Par exemple,
203     il est possible de construire un alias avec un mod&egrave;le de chemin URL
204     insensible &agrave; la casse :</p>
205
206     <highlight language="config">
207       AliasMatch (?i)^/image(.*) /ftp/pub/image$1
208     </highlight>
209
210     <p>Il existe une diff&eacute;rence subtile entre <directive
211     module="mod_alias">Alias</directive> et <directive
212     module="mod_alias">AliasMatch</directive> : <directive
213     module="mod_alias">Alias</directive> copie automatiquement toute
214     portion suppl&eacute;mentaire de l'URI situ&eacute;e apr&egrave;s la partie du mod&egrave;le qui
215     correspond, &agrave; la fin du chemin du fichier de la partie droite, alors
216     que <directive module="mod_alias">AliasMatch</directive> ne le fait
217     pas. Cela signifie qu'il sera pr&eacute;f&eacute;rable dans la plupart des cas de
218     comparer l'expression rationnelle du mod&egrave;le &agrave; la totalit&eacute; de l'URI
219     de la requ&ecirc;te, et d'utiliser les substitutions dans la partie
220     droite.</p>
221
222     <p>En d'autres termes, le remplacement d'<directive
223     module="mod_alias">Alias</directive> par <directive
224     module="mod_alias">AliasMatch</directive> ne produira pas le m&ecirc;me
225     r&eacute;sultat. Au minimum, vous devez ajouter <code>^</code> au d&eacute;but de
226     l'expression rationnelle, <code>(.*)$</code> &agrave; sa fin et
227     <code>$1</code> &agrave; la fin de la cha&icirc;ne de remplacement.</p>
228
229     <p>Par exemple, supposons que nous voulions reformuler cet alias
230     avec AliasMatch :</p>
231
232     <highlight language="config">
233       Alias /image/ /ftp/pub/image/
234     </highlight>
235
236     <p>Le simple remplacement d'Alias par AliasMatch ne produira pas le
237     m&ecirc;me r&eacute;sultat. Ainsi, ce qui suit va rediriger toutes les requ&ecirc;tes
238     qui contiennent /image/ vers /ftp/pub/image/ :</p>
239
240     <highlight language="config">
241       AliasMatch /image/ /ftp/pub/image/
242     </highlight>
243
244     <p>Voici la directive AliasMatch qui produira le m&ecirc;me r&eacute;sultat que
245     la directive Alias ci-dessus :</p>
246
247     <highlight language="config">
248       AliasMatch ^/image/(.*)$ /ftp/pub/image/$1
249     </highlight>
250
251     <p>Bien entendu, il n'y a aucune raison d'utiliser <directive
252     module="mod_alias">AliasMatch</directive> dans le cas o&ugrave; <directive
253     module="mod_alias">Alias</directive> suffit. <directive
254     module="mod_alias">AliasMatch</directive> vous permet d'effectuer
255     des choses beaucoup plus sophistiqu&eacute;es. Par exemple, vous pouvez
256     servir diff&eacute;rentes sortes de fichiers &agrave; partir de r&eacute;pertoires
257     diff&eacute;rents :</p>
258
259     <highlight language="config">
260       AliasMatch ^/image/(.*)\.jpg$ /fichiers/jpg.images/$1.jpg<br/>
261       AliasMatch ^/image/(.*)\.gif$ /fichiers/gif.images/$1.gif
262     </highlight>
263
264     <p>Les éventuels slashes de tête multiples seront supprimés par le
265     serveur avant que les directives de ce module n'effectuent des
266     comparaisons avec le chemin URL de la requête.
267     </p>
268
269 </usage>
270 </directivesynopsis>
271
272 <directivesynopsis>
273 <name>Redirect</name>
274 <description>Envoie une redirection externe demandant au client
275 d'effectuer une autre requ&ecirc;te avec une URL diff&eacute;rente</description>
276 <syntax>Redirect [<var>&eacute;tat</var>] <var>chemin URL</var>
277 <var>URL</var></syntax>
278 <contextlist><context>server config</context><context>virtual host</context>
279 <context>directory</context><context>.htaccess</context></contextlist>
280 <override>FileInfo</override>
281
282 <usage>
283     <p>La directive Redirect permet de faire correspondre une ancienne
284     URL &agrave; une nouvelle en demandant au client d'aller chercher la ressource &agrave;
285     une autre localisation.</p>
286
287     <p>L'ancien <em>chemin URL</em> est un chemin sensible &agrave; la casse
288     (d&eacute;cod&eacute; &agrave; l'aide de caract&egrave;res %) commen&ccedil;ant par un slash. Les
289     chemins relatifs ne sont pas autoris&eacute;s.</p>
290
291     <p>La nouvelle <em>URL</em>
292     peut &ecirc;tre une URL absolue commen&ccedil;ant par un protocole et un nom
293     d'h&ocirc;te, mais on peut aussi utiliser un chemin URL commen&ccedil;ant par un
294     slash, auquel cas le protocole et le nom d'h&ocirc;te du serveur local
295     seront ajout&eacute;s.</p>
296
297     <p>Ensuite, toute requ&ecirc;te commen&ccedil;ant par <em>chemin URL</em> va
298     renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
299     &eacute;l&eacute;ment de chemin suppl&eacute;mentaire situ&eacute; en aval du <em>chemin
300     URL</em> sera ajout&eacute; &agrave; l'URL cible.</p>
301
302     <highlight language="config">
303 # Redirige vers une URL sur un serveur diff&eacute;rent
304 Redirect /service http://foo2.example.com/service
305
306 # Redirige vers une URL sur le m&ecirc;me serveur
307 Redirect /one /two
308     </highlight>
309
310     <p>Si le client effectue une requ&ecirc;te pour l'URL
311     <code>http://example.com/service/foo.txt</code>, il lui sera demand&eacute;
312     d'en effectuer une autre pour l'URL
313     <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne
314     les requ&ecirc;tes avec param&egrave;tres <code>GET</code>, comme
315     <code>http://example.com/service/foo.pl?q=23&amp;a=42</code>, qui
316     seront redirig&eacute;es vers
317     <code>http://foo2.example.com/service/foo.pl?q=23&amp;a=42</code>.
318     Notez que les <code>POST</code>s seront ignor&eacute;s.<br />
319     Seuls les
320     &eacute;l&eacute;ments de chemin complets sont test&eacute;s, si bien que l'exemple
321     pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'URL
322     <code>http://example.com/servicefoo.txt</code>. Pour des mises en
323     correspondance plus complexes faisant intervenir les expressions
324     rationnelles, veuillez vous reporter &agrave; la directive <directive
325     module="mod_alias">RedirectMatch</directive>.</p>
326
327
328     <note><title>Note</title>
329     <p>Les directives de redirection ont priorit&eacute; sur les directives
330     Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le
331     fichier de configuration.</p></note>
332
333     <p>Si aucun argument <var>&eacute;tat</var> n'est sp&eacute;cifi&eacute;, la
334     redirection sera temporaire (code HTTP 302). Le client est alors
335     inform&eacute; que la ressource a &eacute;t&eacute; temporairement d&eacute;plac&eacute;e. On peut
336     utiliser l'argument <var>&eacute;tat</var> pour renvoyer d'autres codes HTTP :</p>
337
338     <dl>
339       <dt>permanent</dt>
340
341       <dd>Renvoie un code de redirection permanente (301), indiquant
342       que la ressource a &eacute;t&eacute; d&eacute;finitivement d&eacute;plac&eacute;e.</dd>
343
344       <dt>temp</dt>
345
346       <dd>Renvoie un code de redirection temporaire (302). C'est le
347       comportement par d&eacute;faut.</dd>
348
349       <dt>seeother</dt>
350
351       <dd>Renvoie un code "See Other" (303) indiquant que la ressource
352       a &eacute;t&eacute; remplac&eacute;e par une autre.</dd>
353
354       <dt>gone</dt>
355
356       <dd>Renvoie un code "Gone" (410) indiquant que la ressource a
357       &eacute;t&eacute; d&eacute;finitivement supprim&eacute;e. Lorsque
358       ce code est utilis&eacute;, on ne
359       doit pas utiliser l'argument <var>URL</var>.</dd>
360     </dl>
361
362     <p>On peut renvoyer d'autres codes en sp&eacute;cifiant le code
363     num&eacute;rique comme valeur de l'argument of <var>&eacute;tat</var>.
364     Si le code est compris entre 300 et 399, l'argument
365     <var>URL</var> doit &ecirc;tre pr&eacute;sent. Si le code
366     n'est <em>pas</em> compris entre 300 et 399, l'argument
367     <var>URL</var> ne doit pas appara&icirc;tre. Le code doit &ecirc;tre un code
368     HTTP valide, connu du serveur HTTP Apache (voir la
369     fonction <code>send_error_response</code> dans
370     http_protocol.c).</p>
371
372     <highlight language="config">
373 Redirect permanent /one http://example.com/two
374 Redirect 303 /three http://example.com/other
375     </highlight>
376
377 </usage>
378 </directivesynopsis>
379
380 <directivesynopsis>
381 <name>RedirectMatch</name>
382 <description>Envoie une redirection externe faisant appel aux
383 expressions rationnelles pour la mise en correspondance de l'URL
384 courante</description>
385 <syntax>RedirectMatch [<var>&eacute;tat</var>] <var>regex</var>
386 <var>URL</var></syntax>
387 <contextlist><context>server config</context><context>virtual host</context>
388 <context>directory</context><context>.htaccess</context></contextlist>
389 <override>FileInfo</override>
390
391 <usage>
392     <p>Cette directive est identique &agrave; la directive <directive
393     module="mod_alias">Redirect</directive>, mais fait appel aux
394     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
395     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
396     rationnelle fournie est mise en correspondance avec le chemin URL,
397     et si elle correspond, le serveur va substituer toute partie de
398     chemin correspondante entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et
399     l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
400     les fichiers GIF vers les fichiers JPEG de m&ecirc;me nom sur un autre
401     serveur, on peut utiliser :</p>
402
403     <highlight language="config">
404       RedirectMatch (.*)\.gif$ http://autre.example.com$1.jpg
405     </highlight>
406
407     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
408     module="mod_alias">Alias</directive> et <directive
409     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
410     diff&eacute;rence entre les directives <directive
411     module="mod_alias">Redirect</directive> et <directive
412     module="mod_alias">RedirectMatch</directive>. Voir la directive
413     <directive module="mod_alias">AliasMatch</directive> pour plus de
414     d&eacute;tails.</p>
415
416 </usage>
417 </directivesynopsis>
418
419 <directivesynopsis>
420 <name>RedirectTemp</name>
421 <description>Envoie une redirection externe temporaire demandant au
422 client d'effectuer une nouvelle requ&ecirc;te avec une URL
423 diff&eacute;rente</description>
424 <syntax>RedirectTemp <var>chemin URL</var> <var>URL</var></syntax>
425 <contextlist><context>server config</context><context>virtual host</context>
426 <context>directory</context><context>.htaccess</context></contextlist>
427 <override>FileInfo</override>
428
429 <usage>
430     <p>Cette directive informe le client que la redirection n'est
431     que temporaire (code 302). Son comportement est exactement le m&ecirc;me
432     que celui de <code>Redirect temp</code>.</p>
433 </usage>
434 </directivesynopsis>
435
436 <directivesynopsis>
437 <name>RedirectPermanent</name>
438 <description>Envoie une redirection externe permanente demandant au
439 client d'effectuer une nouvelle requ&ecirc;te avec une URL
440 diff&eacute;rente</description>
441 <syntax>RedirectPermanent <var>chemin URL</var> <var>URL</var></syntax>
442 <contextlist><context>server config</context><context>virtual host</context>
443 <context>directory</context><context>.htaccess</context></contextlist>
444 <override>FileInfo</override>
445
446 <usage>
447     <p>Cette directive informe le client que la redirection est
448     permanente (code 301). Son comportement est exactement le m&ecirc;me
449     que celui de <code>Redirect permanent</code>.</p>
450 </usage>
451 </directivesynopsis>
452
453 <directivesynopsis>
454 <name>ScriptAlias</name>
455 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
456 et d&eacute;signe la cible comme script CGI</description>
457 <syntax>ScriptAlias <var>chemin URL</var>
458 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
459 <contextlist><context>server config</context><context>virtual host</context>
460 </contextlist>
461
462 <usage>
463     <p>La directive <directive>ScriptAlias</directive> pr&eacute;sente le m&ecirc;me
464     comportement que la directive <directive
465     module="mod_alias">Alias</directive>, mais d&eacute;signe en plus le
466     r&eacute;pertoire cible comme conteneur de scripts CGI qui seront trait&eacute;es
467     par le gestionnaire cgi-script du module <module>mod_cgi</module>.
468     Les URLs dont le chemin URL sensible &agrave; la casse (d&eacute;cod&eacute; avec
469     caract&egrave;res %) commence par <var>chemin URL</var> seront mises en
470     correspondance avec les scripts dont le chemin commence par le
471     second argument, qui est un chemin complet dans le syst&egrave;me de
472     fichiers local.</p>
473
474     <highlight language="config">
475       ScriptAlias /cgi-bin/ /web/cgi-bin/
476     </highlight>
477
478     <p>Une requ&ecirc;te pour <code>http://example.com/cgi-bin/foo</code>
479     ferait ex&eacute;cuter par le serveur le script
480     <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
481     &eacute;quivalente &agrave; :</p>
482     <highlight language="config">
483 Alias /cgi-bin/ /web/cgi-bin/
484 &lt;Location /cgi-bin &gt;
485     SetHandler cgi-script
486     Options +ExecCGI
487 &lt;/Location&gt;
488     </highlight>
489
490         <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
491         avec un script ou gestionnaire de votre cru. Par exemple :</p>
492
493         <highlight language="config">
494           ScriptAlias /cgi-bin/ /web/cgi-handler.pl
495     </highlight>
496
497     <p>Dans ce sc&eacute;nario, tous les fichiers faisant l'objet d'une requ&ecirc;te
498     dans <code>/cgi-bin/</code> seront trait&eacute;s par le fichier que vous
499     avez sp&eacute;cifi&eacute;, ce qui vous permet d'utiliser votre propre
500     gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
501     les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
502
503     <note type="warning">Il est pr&eacute;f&eacute;rable d'&eacute;viter de placer les
504     scripts CGI dans l'arborescence de <directive
505     module="core">DocumentRoot</directive> afin d'&eacute;viter de r&eacute;v&eacute;ler
506     accidentellement leur code source lors d'une modification de
507     configuration. On y parvient ais&eacute;ment avec
508     <directive>ScriptAlias</directive> en mettant en correspondance une
509     URL et en d&eacute;signant la cible comme scripts CGI par la m&ecirc;me occasion.
510     Si vous choisissez de placer vos scripts CGI dans un r&eacute;pertoire
511     accessible depuis le web, n'utilisez pas
512     <directive>ScriptAlias</directive>. Utilisez plut&ocirc;t <directive
513     module="core" type="section">Directory</directive>, <directive
514     module="core">SetHandler</directive>, et <directive
515     module="core">Options</directive> comme dans l'exemple suivant :
516     <highlight language="config">
517 &lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;
518     SetHandler cgi-script
519     Options ExecCGI
520 &lt;/Directory&gt;
521     </highlight>
522     Ceci est n&eacute;cessaire car plusieurs <var>chemins URL</var> peuvent
523     correspondre &agrave; la m&ecirc;me zone du syst&egrave;me de fichiers, court-circuitant
524     ainsi la directive <directive>ScriptAlias</directive> et r&eacute;v&eacute;lant le
525     code source des scripts CGI s'ils ne sont pas prot&eacute;g&eacute;s par une
526     section <directive module="core">Directory</directive>.</note>
527
528 </usage>
529 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
530 </directivesynopsis>
531
532 <directivesynopsis>
533 <name>ScriptAliasMatch</name>
534 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
535 en faisant appel aux expressions rationnelles et en d&eacute;signant la cible
536 comme un script CGI</description>
537 <syntax>ScriptAliasMatch <var>regex</var>
538 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
539 <contextlist><context>server config</context><context>virtual host</context>
540 </contextlist>
541
542 <usage>
543     <p>Cette directive est &eacute;quivalente &agrave; la directive <directive
544     module="mod_alias">ScriptAlias</directive>, mais fait appel aux
545     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
546     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
547     rationnelle fournie est mise en correspondance avec le chemin URL,
548     et si elle correspond, le serveur va substituer toute partie de
549     chemin entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et l'utiliser
550     comme nom de fichier. Par exemple, pour activer le r&eacute;pertoire
551     standard <code>/cgi-bin</code>, on peut utiliser :</p>
552
553     <highlight language="config">
554       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
555     </highlight>
556
557     <p>Comme dans le cas d'AliasMatch, toute la puissance des <glossary
558     ref="rexex">expressions rationnelles</glossary> peut &ecirc;tre mise &agrave;
559     contribution. Par exemple, il est possible de construire un alias
560     avec une comparaison du mod&egrave;le du chemin URL insensible &agrave; la casse :</p>
561
562     <highlight language="config">
563       ScriptAliasMatch (?i)^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
564     </highlight>
565
566     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
567     module="mod_alias">Alias</directive> et <directive
568     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
569     diff&eacute;rence entre les directives <directive
570     module="mod_alias">ScriptAlias</directive> et <directive
571     module="mod_alias">ScriptAliasMatch</directive>. Voir la directive
572     <directive module="mod_alias">AliasMatch</directive> pour plus de
573     d&eacute;tails.</p>
574
575 </usage>
576 </directivesynopsis>
577
578 </modulesynopsis>