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