]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_alias.xml.fr
xforms
[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: 1684313:1731335 (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>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&eacute;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&ccedil;u pour traiter des t&acirc;ches
66     simples de manipulation d'URL. Pour des t&acirc;ches plus complexes comme
67     la manipulation des cha&icirc;nes d'arguments des requ&ecirc;tes, utilisez
68     plut&ocirc;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&egrave;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&eacute;rents contextes
79     sont trait&eacute;s comme les autres directives en respectant les <a
80     href="../sections.html#mergin">r&egrave;gles de fusion</a> standards. Par
81     contre, ils sont trait&eacute;s selon une chronologie particuli&egrave;re
82     lorsqu'ils apparaissent dans le m&ecirc;me contexte (par exemple, dans la
83     m&ecirc;me section <directive type="section"
84     module="core">VirtualHost</directive>).</p>
85
86     <p>Premi&egrave;rement, toutes les redirections sont trait&eacute;es avant les
87     alias, et ainsi, une requ&ecirc;te qui correspond &agrave; 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&egrave;mement, les alias et redirections sont
91     trait&eacute;s selon l'ordre dans lequel ils apparaissent dans le fichier
92     de configuration, seule la premi&egrave;re correspondance &eacute;tant prise en
93     compte.</p>
94
95     <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
96     m&ecirc;me sous-r&eacute;pertoire, vous devez classer les chemins du plus pr&eacute;cis
97     au moins pr&eacute;cis afin que toutes les directives puissent
98     &eacute;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 &eacute;tait invers&eacute;, la directive <directive
106     module="mod_alias">Alias</directive> ayant pour argument
107     <code>/foo</code> serait toujours appliqu&eacute;e avant la directive
108     <directive module="mod_alias">Alias</directive> ayant pour argument
109     <code>/foo/bar</code>, et cette derni&egrave;re serait toujours
110     ignor&eacute;e.</p>
111
112     <p>La d&eacute;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&eacute;finitions &eacute;ventuelles de ces m&ecirc;mes
119     directives au niveau de la configuration g&eacute;n&eacute;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&egrave;me
126 de fichiers</description>
127 <syntax>Alias [<var>chemin URL</var>]
128 <var>chemin fichier</var>|<var>chemin r&eacute;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&eacute;s &agrave; &ecirc;tre servis) dans des zones du syst&egrave;me de
136     fichiers situ&eacute;es en dehors de l'arborescence du site web <directive
137     module="core">DocumentRoot</directive>. Les URLs dont le chemin
138     (d&eacute;cod&eacute; avec caract&egrave;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&eacute;pertoire</var>. Le <var>chemin URL</var>
141     est sensible &agrave; la casse, m&ecirc;me sur les syst&egrave;mes de fichiers
142     insensibles &agrave; la casse.</p>
143
144     <highlight language="config">
145       Alias "/image" "/ftp/pub/image"
146     </highlight>
147
148     <p>Une requ&ecirc;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 &eacute;l&eacute;ments de chemin
151     complets sont test&eacute;s ; ainsi l'alias pr&eacute;c&eacute;dent ne conviendra pas
152     pour une requ&ecirc;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 &agrave; 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&ecirc;te. Autrement dit, si vous d&eacute;finissez</p>
160
161     <highlight language="config">
162       Alias "/icons/" "/usr/local/apache/icons/"
163     </highlight>
164
165     <p>l'alias pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; l'url
166     <code>/icons</code> &agrave; 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'&ecirc;tre du <var>chemin du fichier</var>.</p>
169
170     <p>Notez qu'il pourra s'av&eacute;rer n&eacute;cessaire de d&eacute;finir des sections
171     <directive type="section" module="core">Directory</directive>
172     suppl&eacute;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&eacute;es (Notez cependant
176     que les sections <directive type="section"
177     module="core">Location</directive> sont trait&eacute;es avant les alias, et
178     s'appliqueront donc).</p>
179
180     <p>En particulier, si vous cr&eacute;ez un alias ayant pour cible un
181     r&eacute;pertoire situ&eacute; en dehors de l'arborescence de votre site web
182     <directive module="core">DocumentRoot</directive>, vous devrez
183     probablement permettre explicitement l'acc&egrave;s &agrave; ce r&eacute;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&egrave;tre <var>chemin URL</var> doit
193     correspondre au nombre de slashes dans le chemin URL de la requ&ecirc;te.</p>
194
195     <p>Si la directive <directive>Alias</directive> est d&eacute;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&eacute;t&eacute; en utilisant la <a
200     href="../expr.html">syntaxe des expressions</a>.<br />
201     Cette syntaxe est disponible à partir de la version 2.4.13 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&egrave;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&eacute;pertoire</var></syntax>
222 <contextlist><context>server config</context><context>virtual host</context>
223 </contextlist>
224
225 <usage>
226     <p>Cette directive est identique &agrave; la directive <directive
227     module="mod_alias">Alias</directive>, mais fait appel aux <glossary
228     ref="regex">expressions rationnelles</glossary>, &agrave; la place d'une
229     simple mise en correspondance de pr&eacute;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 &agrave; l'expression entre parenth&egrave;ses dans la cha&icirc;ne
233     fournie et l'utiliser comme nom de fichier.
234     Par exemple, pour activer le r&eacute;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 &ecirc;tre mise &agrave; contribution. Par exemple,
243     il est possible de construire un alias avec un mod&egrave;le de chemin URL
244     insensible &agrave; 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&eacute;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&eacute;mentaire de l'URI situ&eacute;e apr&egrave;s la partie du mod&egrave;le qui
255     correspond, &agrave; 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&eacute;f&eacute;rable dans la plupart des cas de
258     comparer l'expression rationnelle du mod&egrave;le &agrave; la totalit&eacute; de l'URI
259     de la requ&ecirc;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&ecirc;me
265     r&eacute;sultat. Au minimum, vous devez ajouter <code>^</code> au d&eacute;but de
266     l'expression rationnelle, <code>(.*)$</code> &agrave; sa fin et
267     <code>$1</code> &agrave; la fin de la cha&icirc;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&ecirc;me r&eacute;sultat. Ainsi, ce qui suit va rediriger toutes les requ&ecirc;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&ecirc;me r&eacute;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&ugrave; <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&eacute;es. Par exemple, vous pouvez
296     servir diff&eacute;rentes sortes de fichiers &agrave; partir de r&eacute;pertoires
297     diff&eacute;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 &eacute;ventuels slashes de t&ecirc;te multiples seront supprim&eacute;s par le
305     serveur avant que les directives de ce module n'effectuent des
306     comparaisons avec le chemin URL de la requ&ecirc;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&ecirc;te avec une URL diff&eacute;rente</description>
316 <syntax>Redirect [<var>&eacute;tat</var>] [<var>chemin URL</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 Redirect permet de faire correspondre une ancienne
324     URL &agrave; une nouvelle en demandant au client d'aller chercher la ressource &agrave;
325     une autre localisation.</p>
326
327     <p>L'ancien <em>chemin URL</em> est un chemin sensible &agrave; la casse
328     (d&eacute;cod&eacute; &agrave; l'aide de caract&egrave;res %) commen&ccedil;ant par un slash. Les
329     chemins relatifs ne sont pas autoris&eacute;s.</p>
330
331     <p>La nouvelle <em>URL</em>
332     peut &ecirc;tre une URL absolue commen&ccedil;ant par un protocole et un nom
333     d'h&ocirc;te, mais on peut aussi utiliser un chemin URL commen&ccedil;ant par un
334     slash, auquel cas le protocole et le nom d'h&ocirc;te du serveur local
335     seront ajout&eacute;s.</p>
336
337     <p>Ensuite, toute requ&ecirc;te commen&ccedil;ant par <em>chemin URL</em> va
338     renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
339     &eacute;l&eacute;ment de chemin suppl&eacute;mentaire situ&eacute; en aval du <em>chemin
340     URL</em> sera ajout&eacute; &agrave; l'URL cible.</p>
341
342     <highlight language="config">
343 # Redirige vers une URL sur un serveur diff&eacute;rent
344 Redirect "/service" "http://foo2.example.com/service"
345
346 # Redirige vers une URL sur le m&ecirc;me serveur
347 Redirect "/one" "/two"
348     </highlight>
349
350     <p>Si le client effectue une requ&ecirc;te pour l'URL
351     <code>http://example.com/service/foo.txt</code>, il lui sera demand&eacute;
352     d'en effectuer une autre pour l'URL
353     <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne
354     les requ&ecirc;tes avec param&egrave;tres <code>GET</code>, comme
355     <code>http://example.com/service/foo.pl?q=23&amp;a=42</code>, qui
356     seront redirig&eacute;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&eacute;s.<br />
359     Seuls les
360     &eacute;l&eacute;ments de chemin complets sont test&eacute;s, si bien que l'exemple
361     pr&eacute;c&eacute;dent ne s'appliquera pas &agrave; 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&eacute;cifiez pas
365     d'argument <var>chemin URL</var> comme d&eacute;crit ci-dessous. En outre,
366     pour une mise en correspondance en utilisant les expressions
367     rationnelles, veuillez vous reporter &agrave; la directive <directive
368     module="mod_alias">RedirectMatch</directive>.</p>
369
370
371     <note><title>Note</title>
372     <p>Les directives de redirection ont priorit&eacute; sur les directives
373     Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le
374     fichier de configuration. Les directives Redirect d&eacute;finies au sein
375     d'une section Location l'emportent sur les directives Redirect et
376     Alias comportant un argument <var>chemin URL</var>.</p></note>
377
378     <p>Si aucun argument <var>&eacute;tat</var> n'est sp&eacute;cifi&eacute;, la
379     redirection sera temporaire (code HTTP 302). Le client est alors
380     inform&eacute; que la ressource a &eacute;t&eacute; temporairement d&eacute;plac&eacute;e. On peut
381     utiliser l'argument <var>&eacute;tat</var> pour renvoyer d'autres codes HTTP :</p>
382
383     <dl>
384       <dt>permanent</dt>
385
386       <dd>Renvoie un code de redirection permanente (301), indiquant
387       que la ressource a &eacute;t&eacute; d&eacute;finitivement d&eacute;plac&eacute;e.</dd>
388
389       <dt>temp</dt>
390
391       <dd>Renvoie un code de redirection temporaire (302). C'est le
392       comportement par d&eacute;faut.</dd>
393
394       <dt>seeother</dt>
395
396       <dd>Renvoie un code "See Other" (303) indiquant que la ressource
397       a &eacute;t&eacute; remplac&eacute;e par une autre.</dd>
398
399       <dt>gone</dt>
400
401       <dd>Renvoie un code "Gone" (410) indiquant que la ressource a
402       &eacute;t&eacute; d&eacute;finitivement supprim&eacute;e. Lorsque
403       ce code est utilis&eacute;, on ne
404       doit pas utiliser l'argument <var>URL</var>.</dd>
405     </dl>
406
407     <p>On peut renvoyer d'autres codes en sp&eacute;cifiant le code
408     num&eacute;rique comme valeur de l'argument of <var>&eacute;tat</var>.
409     Si le code est compris entre 300 et 399, l'argument
410     <var>URL</var> doit &ecirc;tre pr&eacute;sent. Si le code
411     n'est <em>pas</em> compris entre 300 et 399, l'argument
412     <var>URL</var> ne doit pas appara&icirc;tre. Le code doit &ecirc;tre un code
413     HTTP valide, connu du serveur HTTP Apache (voir la
414     fonction <code>send_error_response</code> dans
415     http_protocol.c).</p>
416
417     <highlight language="config">
418 Redirect permanent "/one" "http://example.com/two"
419 Redirect 303 "/three" "http://example.com/other"
420     </highlight>
421
422     <p>Si une directive <directive>Redirect</directive> est d&eacute;finie au
423     sein d'une section <directive type="section"
424     module="core">Location</directive> ou <directive type="section"
425     module="core">LocationMatch</directive> et si l'argument <var>chemin
426     URL</var> est omis, l'argument <var>URL</var> sera interpr&eacute;t&eacute; en
427     utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
428     Cette syntaxe est disponible à partir de la version 2.4.13 du
429     serveur HTTP Apache.</p>
430
431     <highlight language="config">
432 &lt;Location "/one"&gt;
433     Redirect permanent "http://example.com/two"
434 &lt;/Location&gt;
435 &lt;Location "/three"&gt;
436     Redirect 303 "http://example.com/other"
437 &lt;/Location&gt;
438 &lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
439     Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
440 &lt;/LocationMatch&gt;
441     </highlight>
442
443 </usage>
444 </directivesynopsis>
445
446 <directivesynopsis>
447 <name>RedirectMatch</name>
448 <description>Envoie une redirection externe faisant appel aux
449 expressions rationnelles pour la mise en correspondance de l'URL
450 courante</description>
451 <syntax>RedirectMatch [<var>&eacute;tat</var>] <var>regex</var>
452 <var>URL</var></syntax>
453 <contextlist><context>server config</context><context>virtual host</context>
454 <context>directory</context><context>.htaccess</context></contextlist>
455 <override>FileInfo</override>
456
457 <usage>
458     <p>Cette directive est identique &agrave; la directive <directive
459     module="mod_alias">Redirect</directive>, mais fait appel aux
460     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
461     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
462     rationnelle fournie est mise en correspondance avec le chemin URL,
463     et si elle correspond, le serveur va substituer toute partie de
464     chemin correspondante entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et
465     l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
466     les fichiers GIF vers les fichiers JPEG de m&ecirc;me nom sur un autre
467     serveur, on peut utiliser :</p>
468
469     <highlight language="config">
470       RedirectMatch "(.*)\.gif$" "http://autre.example.com$1.jpg"
471     </highlight>
472
473     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
474     module="mod_alias">Alias</directive> et <directive
475     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
476     diff&eacute;rence entre les directives <directive
477     module="mod_alias">Redirect</directive> et <directive
478     module="mod_alias">RedirectMatch</directive>. Voir la directive
479     <directive module="mod_alias">AliasMatch</directive> pour plus de
480     d&eacute;tails.</p>
481
482 </usage>
483 </directivesynopsis>
484
485 <directivesynopsis>
486 <name>RedirectTemp</name>
487 <description>Envoie une redirection externe temporaire demandant au
488 client d'effectuer une nouvelle requ&ecirc;te avec une URL
489 diff&eacute;rente</description>
490 <syntax>RedirectTemp <var>chemin URL</var> <var>URL</var></syntax>
491 <contextlist><context>server config</context><context>virtual host</context>
492 <context>directory</context><context>.htaccess</context></contextlist>
493 <override>FileInfo</override>
494
495 <usage>
496     <p>Cette directive informe le client que la redirection n'est
497     que temporaire (code 302). Son comportement est exactement le m&ecirc;me
498     que celui de <code>Redirect temp</code>.</p>
499 </usage>
500 </directivesynopsis>
501
502 <directivesynopsis>
503 <name>RedirectPermanent</name>
504 <description>Envoie une redirection externe permanente demandant au
505 client d'effectuer une nouvelle requ&ecirc;te avec une URL
506 diff&eacute;rente</description>
507 <syntax>RedirectPermanent <var>chemin URL</var> <var>URL</var></syntax>
508 <contextlist><context>server config</context><context>virtual host</context>
509 <context>directory</context><context>.htaccess</context></contextlist>
510 <override>FileInfo</override>
511
512 <usage>
513     <p>Cette directive informe le client que la redirection est
514     permanente (code 301). Son comportement est exactement le m&ecirc;me
515     que celui de <code>Redirect permanent</code>.</p>
516 </usage>
517 </directivesynopsis>
518
519 <directivesynopsis>
520 <name>ScriptAlias</name>
521 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
522 et d&eacute;signe la cible comme script CGI</description>
523 <syntax>ScriptAlias [<var>chemin URL</var>]
524 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
525 <contextlist><context>server config</context><context>virtual host</context>
526 <context>directory</context>
527 </contextlist>
528
529 <usage>
530     <p>La directive <directive>ScriptAlias</directive> pr&eacute;sente le m&ecirc;me
531     comportement que la directive <directive
532     module="mod_alias">Alias</directive>, mais d&eacute;signe en plus le
533     r&eacute;pertoire cible comme conteneur de scripts CGI qui seront trait&eacute;es
534     par le gestionnaire cgi-script du module <module>mod_cgi</module>.
535     Les URLs dont le chemin URL sensible &agrave; la casse (d&eacute;cod&eacute; avec
536     caract&egrave;res %) commence par <var>chemin URL</var> seront mises en
537     correspondance avec les scripts dont le chemin commence par le
538     second argument, qui est un chemin complet dans le syst&egrave;me de
539     fichiers local.</p>
540
541     <highlight language="config">
542       ScriptAlias "/cgi-bin/" "/web/cgi-bin/"
543     </highlight>
544
545     <p>Une requ&ecirc;te pour <code>http://example.com/cgi-bin/foo</code>
546     ferait ex&eacute;cuter par le serveur le script
547     <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
548     &eacute;quivalente &agrave; :</p>
549     <highlight language="config">
550 Alias "/cgi-bin/" "/web/cgi-bin/"
551 &lt;Location "/cgi-bin"&gt;
552     SetHandler cgi-script
553     Options +ExecCGI
554 &lt;/Location&gt;
555     </highlight>
556
557         <p>Vous pouvez aussi utiliser <directive>ScriptAlias</directive>
558         avec un script ou gestionnaire de votre cru. Par exemple :</p>
559
560         <highlight language="config">
561           ScriptAlias "/cgi-bin/" "/web/cgi-handler.pl"
562     </highlight>
563
564     <p>Dans ce sc&eacute;nario, tous les fichiers faisant l'objet d'une requ&ecirc;te
565     dans <code>/cgi-bin/</code> seront trait&eacute;s par le fichier que vous
566     avez sp&eacute;cifi&eacute;, ce qui vous permet d'utiliser votre propre
567     gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
568     les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
569
570     <note type="warning">Il est pr&eacute;f&eacute;rable d'&eacute;viter de placer les
571     scripts CGI dans l'arborescence de <directive
572     module="core">DocumentRoot</directive> afin d'&eacute;viter de r&eacute;v&eacute;ler
573     accidentellement leur code source lors d'une modification de
574     configuration. On y parvient ais&eacute;ment avec
575     <directive>ScriptAlias</directive> en mettant en correspondance une
576     URL et en d&eacute;signant la cible comme scripts CGI par la m&ecirc;me occasion.
577     Si vous choisissez de placer vos scripts CGI dans un r&eacute;pertoire
578     accessible depuis le web, n'utilisez pas
579     <directive>ScriptAlias</directive>. Utilisez plut&ocirc;t <directive
580     module="core" type="section">Directory</directive>, <directive
581     module="core">SetHandler</directive>, et <directive
582     module="core">Options</directive> comme dans l'exemple suivant :
583     <highlight language="config">
584 &lt;Directory "/usr/local/apache2/htdocs/cgi-bin"&gt;
585     SetHandler cgi-script
586     Options ExecCGI
587 &lt;/Directory&gt;
588     </highlight>
589     Ceci est n&eacute;cessaire car plusieurs <var>chemins URL</var> peuvent
590     correspondre &agrave; la m&ecirc;me zone du syst&egrave;me de fichiers, court-circuitant
591     ainsi la directive <directive>ScriptAlias</directive> et r&eacute;v&eacute;lant le
592     code source des scripts CGI s'ils ne sont pas prot&eacute;g&eacute;s par une
593     section <directive module="core">Directory</directive>.</note>
594
595     <p>Si la directive <directive>ScriptAlias</directive> est d&eacute;finie au
596     sein d'une section <directive type="section"
597     module="core">Location</directive> ou <directive type="section"
598     module="core">LocationMatch</directive> et si l'argument <var>chemin
599     URL</var> est omis, l'argument <var>URL</var> sera interpr&eacute;t&eacute; en
600     utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
601     Cette syntaxe est disponible à partir de la version 2.4.13 du
602     serveur HTTP Apache.</p>
603
604     <highlight language="config">
605 &lt;Location "/cgi-bin"&gt;
606     ScriptAlias "/web/cgi-bin/"
607 &lt;/Location&gt;
608 &lt;LocationMatch "/cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)"&gt;
609     ScriptAlias "/web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
610 &lt;/LocationMatch&gt;
611     </highlight>
612
613 </usage>
614 <seealso><a href="../howto/cgi.html">Tutoriel CGI</a></seealso>
615 </directivesynopsis>
616
617 <directivesynopsis>
618 <name>ScriptAliasMatch</name>
619 <description>Fait correspondre une URL &agrave; une zone du syst&egrave;me de fichiers
620 en faisant appel aux expressions rationnelles et en d&eacute;signant la cible
621 comme un script CGI</description>
622 <syntax>ScriptAliasMatch <var>regex</var>
623 <var>chemin fichier</var>|<var>chemin r&eacute;pertoire</var></syntax>
624 <contextlist><context>server config</context><context>virtual host</context>
625 </contextlist>
626
627 <usage>
628     <p>Cette directive est &eacute;quivalente &agrave; la directive <directive
629     module="mod_alias">ScriptAlias</directive>, mais fait appel aux
630     <glossary ref="regex">expressions rationnelles</glossary>, &agrave; la
631     place d'une simple mise en correspondance de pr&eacute;fixe. L'expression
632     rationnelle fournie est mise en correspondance avec le chemin URL,
633     et si elle correspond, le serveur va substituer toute partie de
634     chemin entre parenth&egrave;ses dans la cha&icirc;ne sp&eacute;cifi&eacute;e et l'utiliser
635     comme nom de fichier. Par exemple, pour activer le r&eacute;pertoire
636     standard <code>/cgi-bin</code>, on peut utiliser :</p>
637
638     <highlight language="config">
639       ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
640     </highlight>
641
642     <p>Comme dans le cas d'AliasMatch, toute la puissance des <glossary
643     ref="rexex">expressions rationnelles</glossary> peut &ecirc;tre mise &agrave;
644     contribution. Par exemple, il est possible de construire un alias
645     avec une comparaison du mod&egrave;le du chemin URL insensible &agrave; la casse :</p>
646
647     <highlight language="config">
648       ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
649     </highlight>
650
651     <p>Les remarques &agrave; propos de la diff&eacute;rence entre <directive
652     module="mod_alias">Alias</directive> et <directive
653     module="mod_alias">AliasMatch</directive> s'appliquent aussi &agrave; la
654     diff&eacute;rence entre les directives <directive
655     module="mod_alias">ScriptAlias</directive> et <directive
656     module="mod_alias">ScriptAliasMatch</directive>. Voir la directive
657     <directive module="mod_alias">AliasMatch</directive> pour plus de
658     d&eacute;tails.</p>
659
660 </usage>
661 </directivesynopsis>
662
663 </modulesynopsis>