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 -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="mod_alias.xml.meta">
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>
32 <sourcefile>mod_alias.c</sourcefile>
33 <identifier>alias_module</identifier>
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
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>
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.
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>
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>
76 <section id="order"><title>Chronologie du traitement</title>
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>
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
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>
100 <highlight language="config">
101 Alias "/foo/bar" "/baz"
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
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>
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>
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>
144 <highlight language="config">
145 Alias "/image" "/ftp/pub/image"
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>
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>
161 <highlight language="config">
162 Alias "/icons/" "/usr/local/apache/icons/"
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>
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>
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>
185 <highlight language="config">
186 Alias "/image" "/ftp/pub/image"
187 <Directory "/ftp/pub/image">
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>
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>
204 <highlight language="config">
205 <Location "/image">
206 Alias "/ftp/pub/image"
208 <LocationMatch "/error/(?<NUMBER>[0-9]+)">
209 Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
210 </LocationMatch>
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>
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
237 <highlight language="config">
238 AliasMatch "^/icons(.*)" "/usr/local/apache/icons$1$2"
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>
246 <highlight language="config">
247 AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"
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
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>
269 <p>Par exemple, supposons que nous voulions reformuler cet alias
270 avec AliasMatch :</p>
272 <highlight language="config">
273 Alias "/image/" "/ftp/pub/image/"
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>
280 <highlight language="config">
281 AliasMatch "/image/" "/ftp/pub/image/"
284 <p>Voici la directive AliasMatch qui produira le même résultat que
285 la directive Alias ci-dessus :</p>
287 <highlight language="config">
288 AliasMatch "^/image/(.*)$" "/ftp/pub/image/$1"
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
299 <highlight language="config">
300 AliasMatch "^/image/(.*)\.jpg$" "/fichiers/jpg.images/$1.jpg"
301 AliasMatch "^/image/(.*)\.gif$" "/fichiers/gif.images/$1.gif"
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.
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>
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>
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>
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
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>
342 <highlight language="config">
343 # Redirige vers une URL sur un serveur différent
344 Redirect "/service" "http://foo2.example.com/service"
346 # Redirige vers une URL sur le même serveur
347 Redirect "/one" "/two"
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&a=42</code>, qui
356 seront redirigées vers
357 <code>http://foo2.example.com/service/foo.pl?q=23&a=42</code>.
358 Notez que les <code>POST</code>s seront ignorés.<br />
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>
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>
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>
389 <dd>Renvoie un code de redirection permanente (301), indiquant
390 que la ressource a été définitivement déplacée.</dd>
394 <dd>Renvoie un code de redirection temporaire (302). C'est le
395 comportement par défaut.</dd>
399 <dd>Renvoie un code "See Other" (303) indiquant que la ressource
400 a été remplacée par une autre.</dd>
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>
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>
420 <highlight language="config">
421 Redirect permanent "/one" "http://example.com/two"
422 Redirect 303 "/three" "http://example.com/other"
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>
433 <highlight language="config">
434 <Location "/one">
435 Redirect permanent "http://example.com/two"
437 <Location "/three">
438 Redirect 303 "http://example.com/other"
440 <LocationMatch "/error/(?<NUMBER>[0-9]+)">
441 Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
442 </LocationMatch>
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>
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>
471 <highlight language="config">
472 RedirectMatch "(.*)\.gif$" "http://autre.example.com$1.jpg"
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
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>
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>
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>
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>
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>
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
543 <highlight language="config">
544 ScriptAlias "/cgi-bin/" "/web/cgi-bin/"
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
551 <highlight language="config">
552 Alias "/cgi-bin/" "/web/cgi-bin/"
553 <Location "/cgi-bin">
554 SetHandler cgi-script
559 <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
560 avec un script ou gestionnaire de votre cru. Par exemple :</p>
562 <highlight language="config">
563 ScriptAlias "/cgi-bin/" "/web/cgi-handler.pl"
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>
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 <Directory "/usr/local/apache2/htdocs/cgi-bin">
587 SetHandler cgi-script
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>
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>
606 <highlight language="config">
607 <Location "/cgi-bin">
608 ScriptAlias "/web/cgi-bin/"
610 <LocationMatch "/cgi-bin/errors/(?<NUMBER>[0-9]+)">
611 ScriptAlias "/web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
612 </LocationMatch>
616 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
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>
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>
640 <highlight language="config">
641 ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
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>
649 <highlight language="config">
650 ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
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