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