]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_alias.xml.fr
Rebuild transformations.
[apache] / docs / manual / mod / mod_alias.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1055611 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="mod_alias.xml.meta">
26
27 <name>mod_alias</name>
28 <description>Permet d'atteindre diff&eacute;rentes parties du syst&egrave;me de
29 fichiers depuis l'arborescence des documents du site web, ainsi que la
30 redirection d'URL</description>
31 <status>Base</status>
32 <sourcefile>mod_alias.c</sourcefile>
33 <identifier>alias_module</identifier>
34
35 <summary>
36     <p>Les directives fournies par ce module permettent de manipuler et
37     de contr&ocirc;ler les URLs &agrave; l'arriv&eacute;e des requ&ecirc;tes sur le serveur. Les
38     directives <directive module="mod_alias">Alias</directive> et
39     <directive module="mod_alias">ScriptAlias</directive> permettent de
40     faire correspondre des URLs avec des chemins du syst&egrave;me de fichiers.
41     Ceci permet de servir des contenus qui ne sont pas situ&eacute;s dans
42     l'arborescence de <directive
43     module="core">DocumentRoot</directive> comme s'ils y &eacute;taient
44     r&eacute;ellement. La directive <directive
45     module="mod_alias">ScriptAlias</directive> a pour effet
46     suppl&eacute;mentaire de marquer le r&eacute;pertoire cible comme conteneur de
47     scripts CGI.</p>
48
49     <p>Les directives <directive module="mod_alias">Redirect</directive>
50     indiquent aux clients qu'ils doivent effectuer une nouvelle requ&ecirc;te
51     avec une URL diff&eacute;rente. Elles sont souvent utilis&eacute;es lorsqu'une
52     ressource a &eacute;t&eacute; d&eacute;plac&eacute;e.</p>
53
54     <p><module>mod_alias</module> est con&ccedil;u pour traiter des t&acirc;ches
55     simples de manipulation d'URL. Pour des t&acirc;ches plus complexes comme
56     la manipulation des cha&icirc;nes d'arguments des requ&ecirc;tes, utilisez
57     plut&ocirc;t les outils fournis par le module <module>mod_rewrite</module></p>
58
59 </summary>
60
61 <seealso><module>mod_rewrite</module></seealso> <seealso><a
62 href="../urlmapping.html">Mise en correspondance des URLs avec le
63 syst&egrave;me de fichiers</a></seealso>
64
65 <section id="order"><title>Chronologie du traitement</title>
66
67     <p>Les alias et redirections apparaissant dans diff&eacute;rents contextes
68     sont trait&eacute;s comme les autres directives en respectant les <a
69     href="../sections.html#mergin">r&egrave;gles de fusion</a> standards. Par
70     contre, ils sont trait&eacute;s selon une chronologie particuli&egrave;re
71     lorsqu'ils apparaissent dans le m&ecirc;me contexte (par exemple, dans la
72     m&ecirc;me section <directive type="section"
73     module="core">VirtualHost</directive>).</p>
74
75     <p>Premi&egrave;rement, toutes les redirections sont trait&eacute;es avant les
76     alias, et ainsi, une requ&ecirc;te qui correspond &agrave; une directive
77     <directive module="mod_alias">Redirect</directive> ou <directive
78     module="mod_alias">RedirectMatch</directive> ne se verra jamais
79     appliquer d'alias. Deuxi&egrave;mement, les alias et redirections sont
80     trait&eacute;s selon l'ordre dans lequel ils apparaissent dans le fichier
81     de configuration, seule la premi&egrave;re correspondance &eacute;tant prise en
82     compte.</p>
83
84     <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
85     m&ecirc;me sous-r&eacute;pertoire, vous devez classer les chemins du plus pr&eacute;cis
86     au moins pr&eacute;cis afin que toutes les directives puissent
87     &eacute;ventuellement s'appliquer, comme dans l'exemple suivant :</p>
88
89     <example>
90     Alias /foo/bar /baz<br />
91     Alias /foo /gaq
92     </example>
93
94     <p>Si l'ordre des directives &eacute;tait invers&eacute;, la directive <directive
95     module="mod_alias">Alias</directive> ayant pour argument
96     <code>/foo</code> serait toujours appliqu&eacute;e avant la directive
97     <directive module="mod_alias">Alias</directive> ayant pour argument
98     <code>/foo/bar</code>, et cette derni&egrave;re serait toujours
99     ignor&eacute;e.</p>
100
101 </section>
102
103 <directivesynopsis>
104 <name>Alias</name>
105 <description>Met en correspondance des URLs avec des chemins du syst&egrave;me
106 de fichiers</description>
107 <syntax>Alias <var>chemin URL</var>
108 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
109 <contextlist><context>server config</context><context>virtual host</context>
110 </contextlist>
111
112 <usage>
113
114     <p>La directive <directive>Alias</directive> permet de stocker des
115     documents (destin&eacute;s &agrave; &ecirc;tre servis) dans des zones du syst&egrave;me de
116     fichiers situ&eacute;es en dehors de l'arborescence du site web <directive
117     module="core">DocumentRoot</directive>. Les URLs dont le chemin
118     (d&eacute;cod&eacute; avec caract&egrave;res %) commence par <var>chemin URL</var> seront
119     mises en correspondance avec des fichiers locaux dont le chemin
120     commence par <var>chemin r&eacute;pertoire</var>. Le <var>chemin URL</var>
121     est sensible &agrave; la casse, m&ecirc;me sur les syst&egrave;mes de fichiers
122     insensibles &agrave; la casse.</p>
123
124     <example><title>Exemple :</title>
125       Alias /image /ftp/pub/image
126     </example>
127
128     <p>Une requ&ecirc;te pour <code>http://myserver/image/foo.gif</code> fera
129     renvoyer par le serveur le fichier
130     <code>/ftp/pub/image/foo.gif</code>. Seuls les &eacute;l&eacute;ments de chemin
131     complets sont test&eacute;s ; ainsi l'alias pr&eacute;c&eacute;dent ne conviendra pas
132     pour une requ&ecirc;te du style <code>http://myserver/imagefoo.gif</code>.
133     Pour des mises en correspondance plus complexes faisant intervenir
134     les expressions rationnelles, veuillez vous reporter &agrave; la directive
135     <directive module="mod_alias">AliasMatch</directive>.</p>
136
137     <p>Notez que si vous ajoutez un slash de fin au <var>chemin
138     URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la
139     requ&ecirc;te. Autrement dit, si vous d&eacute;finissez</p>
140
141     <dl><dd><code>Alias /icons/ /usr/local/apache/icons/</code></dd></dl>
142
143     <p>l'alias pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'url
144     <code>/icons</code> &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>statut</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>statut</var> n'est sp&eacute;cifi&eacute;, la
328     redirection sera temporaire (statut 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>statut</var> pour renvoyer d'autres codes
331     de statut HTTP :</p>
332
333     <dl>
334       <dt>permanent</dt>
335
336       <dd>Renvoie un statut de redirection permanente (301), indiquant
337       que la ressource a &eacute;t&eacute; d&eacute;finitivement d&eacute;plac&eacute;e.</dd>
338
339       <dt>temp</dt>
340
341       <dd>Renvoie un statut de redirection temporaire (302). C'est le
342       comportement par d&eacute;faut.</dd>
343
344       <dt>seeother</dt>
345
346       <dd>Renvoie un statut "See Other" (303) indiquant que la ressource
347       a &eacute;t&eacute; remplac&eacute;e par une autre.</dd>
348
349       <dt>gone</dt>
350
351       <dd>Renvoie un statut "Gone" (410) indiquant que la ressource a
352       &eacute;t&eacute; d&eacute;finitivement supprim&eacute;e. Lorsque ce statut est d&eacute;fini, on ne
353       doit pas utiliser l'argument <var>URL</var>.</dd>
354     </dl>
355
356     <p>On peut renvoyer d'autres codes de statut en sp&eacute;cifiant le code
357     de statut num&eacute;rique comme valeur de l'argument of <var>statut</var>.
358     Si le code de statut est compris entre 300 et 399, l'argument
359     <var>URL</var> doit &ecirc;tre pr&eacute;sent, sinon il ne doit pas &ecirc;tre utilis&eacute;.
360     Notez que le statut doit &ecirc;tre connu du code d'Apache (voir la
361     fonction <code>send_error_response</code> dans
362     http_protocol.c).</p>
363
364     <example><title>Exemple :</title>
365       Redirect permanent /un http://example.com/deux<br />
366       Redirect 303 /trois http://example.com/autre
367     </example>
368
369 </usage>
370 </directivesynopsis>
371
372 <directivesynopsis>
373 <name>RedirectMatch</name>
374 <description>Envoie une redirection externe faisant appel aux
375 expressions rationnelles pour la mise en correspondance de l'URL
376 courante</description>
377 <syntax>RedirectMatch [<var>statut</var>] <var>regex</var>
378 <var>URL</var></syntax>
379 <contextlist><context>server config</context><context>virtual host</context>
380 <context>directory</context><context>.htaccess</context></contextlist>
381 <override>FileInfo</override>
382
383 <usage>
384     <p>Cette directive est identique &agrave; la directive <directive
385     module="mod_alias">Redirect</directive>, mais fait appel aux
386     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
387     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
388     rationnelle fournie est mise en correspondance avec le chemin URL,
389     et si elle correspond, le serveur va substituer toute partie de
390     chemin correspondante entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et
391     l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
392     les fichiers GIF vers les fichiers JPEG de m&ecirc;me nom sur un autre
393     serveur, on peut utiliser :</p>
394
395     <example>
396       RedirectMatch (.*)\.gif$ http://autre.example.com$1.jpg
397     </example>
398
399     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
400     module="mod_alias">Alias</directive> et <directive
401     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
402     diff&eacute;rence entre les directives <directive
403     module="mod_alias">Redirect</directive> et <directive
404     module="mod_alias">RedirectMatch</directive>. Voir la directive
405     <directive module="mod_alias">AliasMatch</directive> pour plus de
406     d&eacute;tails.</p>
407
408 </usage>
409 </directivesynopsis>
410
411 <directivesynopsis>
412 <name>RedirectTemp</name>
413 <description>Envoie une redirection externe temporaire demandant au
414 client d'effectuer une nouvelle requ&ecirc;te avec une URL
415 diff&eacute;rente</description>
416 <syntax>RedirectTemp <var>chemin URL</var> <var>URL</var></syntax>
417 <contextlist><context>server config</context><context>virtual host</context>
418 <context>directory</context><context>.htaccess</context></contextlist>
419 <override>FileInfo</override>
420
421 <usage>
422     <p>Cette directive informe le client que la redirection n'est
423     que temporaire (statut 302). Son comportement est exactement le m&ecirc;me
424     que celui de <code>Redirect temp</code>.</p>
425 </usage>
426 </directivesynopsis>
427
428 <directivesynopsis>
429 <name>RedirectPermanent</name>
430 <description>Envoie une redirection externe permanente demandant au
431 client d'effectuer une nouvelle requ&ecirc;te avec une URL
432 diff&eacute;rente</description>
433 <syntax>RedirectPermanent <var>chemin URL</var> <var>URL</var></syntax>
434 <contextlist><context>server config</context><context>virtual host</context>
435 <context>directory</context><context>.htaccess</context></contextlist>
436 <override>FileInfo</override>
437
438 <usage>
439     <p>Cette directive informe le client que la redirection est
440     permanente (statut 301). Son comportement est exactement le m&ecirc;me
441     que celui de <code>Redirect permanent</code>.</p>
442 </usage>
443 </directivesynopsis>
444
445 <directivesynopsis>
446 <name>ScriptAlias</name>
447 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
448 et d&eacute;signe la cible comme script CGI</description>
449 <syntax>ScriptAlias <var>chemin URL</var>
450 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
451 <contextlist><context>server config</context><context>virtual host</context>
452 </contextlist>
453
454 <usage>
455     <p>La directive <directive>ScriptAlias</directive> pr&eacute;sente le m&ecirc;me
456     comportement que la directive <directive
457     module="mod_alias">Alias</directive>, mais d&eacute;signe en plus le
458     r&eacute;pertoire cible comme conteneur de scripts CGI qui seront trait&eacute;es
459     par le gestionnaire cgi-script du module <module>mod_cgi</module>.
460     Les URLs dont le chemin URL sensible &agrave; la casse (d&eacute;cod&eacute; avec
461     caract&egrave;res %) commence par <var>chemin URL</var> seront mises en
462     correspondance avec les scripts dont le chemin commence par le
463     second argument, qui est un chemin complet dans le syst&egrave;me de
464     fichiers local.</p>
465
466     <example><title>Exemple :</title>
467       ScriptAlias /cgi-bin/ /web/cgi-bin/
468     </example>
469
470     <p>Une requ&ecirc;te pour <code>http://mon-serveur/cgi-bin/foo</code>
471     ferait ex&eacute;cuter par le serveur le script
472     <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
473     &eacute;quivalente &agrave; :</p>
474     <example>
475       Alias /cgi-bin/ /web/cgi-bin/<br />
476       &lt;Location /cgi-bin &gt;<br />
477       <indent>
478       SetHandler cgi-script<br />
479       Options +ExecCGI<br />
480       </indent>
481       &lt;/Location&gt;
482     </example>
483
484         <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
485         avec un script ou gestionnaire de votre cru. Par exemple :</p>
486
487         <example>
488           ScriptAlias /cgi-bin/ /web/cgi-handler.pl
489     </example>
490
491     <p>Dans ce sc&eacute;nario, tous les fichiers faisant l'objet d'une requ&ecirc;te
492     dans <code>/cgi-bin/</code> seront trait&eacute;s par le fichier que vous
493     avez sp&eacute;cifi&eacute;, ce qui vous permet d'utiliser votre propre
494     gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
495     les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
496
497     <note type="warning">Il est pr&eacute;f&eacute;rable d'&eacute;viter de placer les
498     scripts CGI dans l'arborescence de <directive
499     module="core">DocumentRoot</directive> afin d'&eacute;viter de r&eacute;v&eacute;ler
500     accidentellement leur code source lors d'une modification de
501     configuration. On y parvient ais&eacute;ment avec
502     <directive>ScriptAlias</directive> en mettant en correspondance une
503     URL et en d&eacute;signant la cible comme scripts CGI par la m&ecirc;me occasion.
504     Si vous choisissez de placer vos scripts CGI dans un r&eacute;pertoire
505     accessible depuis le web, n'utilisez pas
506     <directive>ScriptAlias</directive>. Utilisez plut&ocirc;t <directive
507     module="core" type="section">Directory</directive>, <directive
508     module="core">SetHandler</directive>, et <directive
509     module="core">Options</directive> comme dans l'exemple suivant :
510     <example>
511       &lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;<br />
512       <indent>
513       SetHandler cgi-script<br />
514       Options ExecCGI<br />
515       </indent>
516       &lt;/Directory&gt;
517     </example>
518     Ceci est n&eacute;cessaire car plusieurs <var>chemins URL</var> peuvent
519     correspondre &agrave; la m&ecirc;me zone du syst&egrave;me de fichiers, court-circuitant
520     ainsi la directive <directive>ScriptAlias</directive> et r&eacute;v&eacute;lant le
521     code source des scripts CGI s'ils ne sont pas prot&eacute;g&eacute;s par une
522     section <directive module="core">Directory</directive>.</note>
523
524 </usage>
525 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
526 </directivesynopsis>
527
528 <directivesynopsis>
529 <name>ScriptAliasMatch</name>
530 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
531 en faisant appel aux expressions rationnelles et en d&eacute;signant la cible
532 comme un script CGI</description>
533 <syntax>ScriptAliasMatch <var>regex</var>
534 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
535 <contextlist><context>server config</context><context>virtual host</context>
536 </contextlist>
537
538 <usage>
539     <p>Cette directive est &eacute;quivalente &agrave; la directive <directive
540     module="mod_alias">ScriptAlias</directive>, mais fait appel aux
541     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
542     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
543     rationnelle fournie est mise en correspondance avec le chemin URL,
544     et si elle correspond, le serveur va substituer toute partie de
545     chemin entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et l'utiliser
546     comme nom de fichier. Par exemple, pour activer le r&eacute;pertoire
547     standard <code>/cgi-bin</code>, on peut utiliser :</p>
548
549     <example>
550       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
551     </example>
552
553     <p>Comme dans le cas d'AliasMatch, toute la puissance des <glossary
554     ref="rexex">expressions rationnelles</glossary> peut &ecirc;tre mise &agrave;
555     contribution. Par exemple, il est possible de construire un alias
556     avec une comparaison du mod&egrave;le du chemin URL insensible &agrave; la casse :</p>
557
558     <example>
559       ScriptAliasMatch (?i)^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
560     </example>
561
562     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
563     module="mod_alias">Alias</directive> et <directive
564     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
565     diff&eacute;rence entre les directives <directive
566     module="mod_alias">ScriptAlias</directive> et <directive
567     module="mod_alias">ScriptAliasMatch</directive>. Voir la directive
568     <directive module="mod_alias">AliasMatch</directive> pour plus de
569     d&eacute;tails.</p>
570
571 </usage>
572 </directivesynopsis>
573
574 </modulesynopsis>