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