summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/mod_alias.html.fr.utf8
blob: d360ab0bda4055df75a2cd2089c92f7551fdf852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_alias - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_alias</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_alias.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'atteindre différentes parties du système de
fichiers depuis l'arborescence des documents du site web, ainsi que la
redirection d'URL</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>alias_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_alias.c</td></tr></table>
<h3>Sommaire</h3>

    <p>Les directives fournies par ce module permettent de manipuler et
    de contrôler les URLs à l'arrivée des requêtes sur le serveur. Les
    directives <code class="directive"><a href="#alias">Alias</a></code> et
    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> permettent de
    faire correspondre des URLs avec des chemins du système de fichiers.
    Ceci permet de servir des contenus qui ne sont pas situés dans
    l'arborescence de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> comme s'ils y étaient
    réellement. La directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> a pour effet
    supplémentaire de marquer le répertoire cible comme conteneur de
    scripts CGI.</p>

    <p>Les directives <code class="directive"><a href="#redirect">Redirect</a></code>
    indiquent aux clients qu'ils doivent effectuer une nouvelle requête
    avec une URL différente. Elles sont souvent utilisées lorsqu'une
    ressource a été déplacée.</p>

    <p>Lorsque les directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> sont définies au sein d'une
    section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
    ou <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, vous pouvez utiliser la <a href="../expr.html">syntaxe des expressions</a> pour manipuler l'URL
    ou le chemin de destination.
	</p>

    <p><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> est conçu pour traiter des tâches
    simples de manipulation d'URL. Pour des tâches plus complexes comme
    la manipulation des chaînes d'arguments des requêtes, utilisez
    plutôt les outils fournis par le module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></p>

</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#redirect">Redirect</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#redirectmatch">RedirectMatch</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#redirectpermanent">RedirectPermanent</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#redirecttemp">RedirectTemp</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_alias">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_alias">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
<li><a href="../urlmapping.html">Mise en correspondance des URLs avec le
système de fichiers</a></li>
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">Chronologie du traitement</a></h2>

    <p>Les alias et redirections apparaissant dans différents contextes
    sont traités comme les autres directives en respectant les <a href="../sections.html#mergin">règles de fusion</a> standards. Par
    contre, ils sont traités selon une chronologie particulière
    lorsqu'ils apparaissent dans le même contexte (par exemple, dans la
    même section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>).</p>

    <p>Premièrement, toutes les redirections sont traitées avant les
    alias, et ainsi, une requête qui correspond à une directive
    <code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
    appliquer d'alias. Deuxièmement, les alias et redirections sont
    traités selon l'ordre dans lequel ils apparaissent dans le fichier
    de configuration, seule la première correspondance étant prise en
    compte.</p>

    <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
    même sous-répertoire, vous devez classer les chemins du plus précis
    au moins précis afin que toutes les directives puissent
    éventuellement s'appliquer, comme dans l'exemple suivant :</p>

    <pre class="prettyprint lang-config">Alias "/foo/bar" "/baz"
Alias "/foo" "/gaq"</pre>


    <p>Si l'ordre des directives était inversé, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
    <code>/foo</code> serait toujours appliquée avant la directive
    <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
    <code>/foo/bar</code>, et cette dernière serait toujours
    ignorée.</p>

    <p>La définition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
    l'emporte sur d'autres définitions éventuelles de ces mêmes
    directives au niveau de la configuration générale du serveur.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="alias" id="alias">Directive</a> <a name="Alias" id="Alias">Alias</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec des chemins du système
de fichiers</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Alias [<var>chemin URL</var>]
<var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>

    <p>La directive <code class="directive">Alias</code> permet de stocker des
    documents (destinés à être servis) dans des zones du système de
    fichiers situées en dehors de l'arborescence du site web <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Les URLs dont le chemin
    (décodé avec caractères %) commence par <var>chemin URL</var> seront
    mises en correspondance avec des fichiers locaux dont le chemin
    commence par <var>chemin répertoire</var>. Le <var>chemin URL</var>
    est sensible à la casse, même sur les systèmes de fichiers
    insensibles à la casse.</p>

    <pre class="prettyprint lang-config">Alias "/image" "/ftp/pub/image"</pre>


    <p>Une requête pour <code>http://example.com/image/foo.gif</code> fera
    renvoyer par le serveur le fichier
    <code>/ftp/pub/image/foo.gif</code>. Seuls les éléments de chemin
    complets sont testés ; ainsi l'alias précédent ne conviendra pas
    pour une requête du style <code>http://example.com/imagefoo.gif</code>.
    Pour des mises en correspondance plus complexes faisant intervenir
    les expressions rationnelles, veuillez vous reporter à la directive
    <code class="directive"><a href="#aliasmatch">AliasMatch</a></code>.</p>

    <p>Notez que si vous ajoutez un slash de fin au <var>chemin
    URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la
    requête. Autrement dit, si vous définissez</p>

    <pre class="prettyprint lang-config">Alias "/icons/" "/usr/local/apache/icons/"</pre>


    <p>l'alias précédent ne s'appliquera pas à l'URL
    <code>/icons</code> à cause de l'absence du slash final. Ainsi, si
    le slash final est absent du <var>chemin de l'URL</var>, il doit
    aussi l'être du <var>chemin du fichier</var>.</p>

    <p>Notez qu'il pourra s'avérer nécessaire de définir des sections
    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>
    supplémentaires qui couvriront la  <em>destination</em> des alias.
    Le traitement des alias intervenant avant le traitement des sections
    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>,
    seules les cibles des alias sont affectées (Notez cependant
    que les sections <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> sont traitées avant les alias, et
    s'appliqueront donc).</p>

    <p>En particulier, si vous créez un alias ayant pour cible un
    répertoire situé en dehors de l'arborescence de votre site web
    <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>, vous devrez
    probablement permettre explicitement l'accès à ce répertoire.</p>

    <pre class="prettyprint lang-config">Alias "/image" "/ftp/pub/image"
&lt;Directory "/ftp/pub/image"&gt;
    Require all granted
&lt;/Directory&gt;</pre>


    <p>Le nombre de slashes dans le paramètre <var>chemin URL</var> doit
    correspondre au nombre de slashes dans le chemin URL de la requête.</p>

    <p>Si la directive <code class="directive">Alias</code> est définie au sein
    d'une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, <var>chemin URL</var> est
    omis et <var>chemin fichier</var> est interprété en utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
    Cette syntaxe est disponible à partir de la version 2.4.19 du
    serveur HTTP Apache.</p>

    <pre class="prettyprint lang-config">&lt;Location "/image"&gt;
    Alias "/ftp/pub/image"
&lt;/Location&gt;
&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
    Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
&lt;/LocationMatch&gt;</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="aliasmatch" id="aliasmatch">Directive</a> <a name="AliasMatch" id="AliasMatch">AliasMatch</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec le système de fichiers
en faisant intervenir les expressions rationnelles</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AliasMatch <var>regex</var>
<var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>Cette directive est identique à la directive <code class="directive"><a href="#alias">Alias</a></code>, mais fait appel aux <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la place d'une
    simple mise en correspondance de préfixe. L'expression rationnelle
    fournie est mise en correspondance avec le chemin URL, et si elle
    correspond, le serveur va substituer toute partie de chemin
    correspondant à l'expression entre parenthèses dans la chaîne
    fournie et l'utiliser comme nom de fichier.
    Par exemple, pour activer le répertoire <code>/icons</code>, on peut
    utiliser :</p>

    <pre class="prettyprint lang-config">AliasMatch "^/icons(.*)" "/usr/local/apache/icons$1$2"</pre>


    <p>Toute la puissance des <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions
    rationnelles</a> peut être mise à contribution. Par exemple,
    il est possible de construire un alias avec un modèle de chemin URL
    insensible à la casse :</p>

    <pre class="prettyprint lang-config">AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"</pre>


    <p>Il existe une différence subtile entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> : <code class="directive"><a href="#alias">Alias</a></code> copie automatiquement toute
    portion supplémentaire de l'URI située après la partie du modèle qui
    correspond, à la fin du chemin du fichier de la partie droite, alors
    que <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> ne le fait
    pas. Cela signifie qu'il sera préférable dans la plupart des cas de
    comparer l'expression rationnelle du modèle à la totalité de l'URI
    de la requête, et d'utiliser les substitutions dans la partie
    droite.</p>

    <p>En d'autres termes, le remplacement d'<code class="directive"><a href="#alias">Alias</a></code> par <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> ne produira pas le même
    résultat. Au minimum, vous devez ajouter <code>^</code> au début de
    l'expression rationnelle, <code>(.*)$</code> à sa fin et
    <code>$1</code> à la fin de la chaîne de remplacement.</p>

    <p>Par exemple, supposons que nous voulions reformuler cet alias
    avec AliasMatch :</p>

    <pre class="prettyprint lang-config">Alias "/image/" "/ftp/pub/image/"</pre>


    <p>Le simple remplacement d'Alias par AliasMatch ne produira pas le
    même résultat. Ainsi, ce qui suit va rediriger toutes les requêtes
    qui contiennent /image/ vers /ftp/pub/image/ :</p>

    <pre class="prettyprint lang-config">AliasMatch "/image/" "/ftp/pub/image/"</pre>


    <p>Voici la directive AliasMatch qui produira le même résultat que
    la directive Alias ci-dessus :</p>

    <pre class="prettyprint lang-config">AliasMatch "^/image/(.*)$" "/ftp/pub/image/$1"</pre>


    <p>Bien entendu, il n'y a aucune raison d'utiliser <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> dans le cas où <code class="directive"><a href="#alias">Alias</a></code> suffit. <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> vous permet d'effectuer
    des choses beaucoup plus sophistiquées. Par exemple, vous pouvez
    servir différentes sortes de fichiers à partir de répertoires
    différents :</p>

    <pre class="prettyprint lang-config">      AliasMatch "^/image/(.*)\.jpg$" "/fichiers/jpg.images/$1.jpg"
      AliasMatch "^/image/(.*)\.gif$" "/fichiers/gif.images/$1.gif"</pre>


    <p>Les éventuels slashes de tête multiples seront supprimés par le
    serveur avant que les directives de ce module n'effectuent des
    comparaisons avec le chemin URL de la requête.
    </p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="redirect" id="redirect">Directive</a> <a name="Redirect" id="Redirect">Redirect</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe demandant au client
d'effectuer une autre requête avec une URL différente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Redirect [<var>état</var>] [<var>URL-path</var>]
<var>URL</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>La directive <code class="directive">Redirect</code> permet de faire correspondre
    une ancienne URL à une nouvelle en demandant au client d'aller chercher la
    ressource à une autre localisation.</p>

    <p>L'ancien <em>URL-path</em> est un chemin sensible à la casse
    (décodé à l'aide de caractères %) commençant par un slash. Les
    chemins relatifs ne sont pas autorisés.</p>

    <p>La nouvelle <em>URL</em>
    peut être une URL absolue commençant par un protocole et un nom
    d'hôte, mais on peut aussi utiliser un chemin URL commençant par un
    slash, auquel cas le protocole et le nom d'hôte du serveur local
    seront ajoutés.</p>

    <p>Ensuite, toute requête commençant par <em>URL-path</em> va
    renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
    élément de chemin supplémentaire situé en aval du <em>URL-path</em> sera
    ajouté à l'URL cible.</p>

    <pre class="prettyprint lang-config"># Redirige vers une URL sur un serveur différent
Redirect "/service" "http://foo2.example.com/service"

# Redirige vers une URL sur le même serveur
Redirect "/one" "/two"</pre>


    <p>Si le client effectue une requête pour l'URL
    <code>http://example.com/service/foo.txt</code>, il lui sera demandé
    d'en effectuer une autre pour l'URL
    <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne
    les requêtes avec paramètres <code>GET</code>, comme
    <code>http://example.com/service/foo.pl?q=23&amp;a=42</code>, qui
    seront redirigées vers
    <code>http://foo2.example.com/service/foo.pl?q=23&amp;a=42</code>.
    Notez que les <code>POST</code>s seront ignorés.<br />
    Seuls les
    éléments de chemin complets sont testés, si bien que l'exemple
    précédent ne s'appliquera pas à l'URL
    <code>http://example.com/servicefoo.txt</code>. Pour des mises en
    correspondance plus complexes utilisant la <a href="../expr.html">syntaxe des expressions</a>, ne spécifiez pas
    d'argument <var>URL-path</var> comme décrit ci-dessous. En outre,
    pour une mise en correspondance en utilisant les expressions
    rationnelles, veuillez vous reporter à la directive <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>.</p>


    <div class="note"><h3>Note</h3>
    <p>Les directives <code class="directive">Redirect</code> ont priorité sur les
    directives <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#scriptalias">ScriptAlias</a></code>, quel que soit leur ordre
    d'apparition dans le fichier de configuration. Les directives
    <code class="directive">Redirect</code> définies au sein d'une section Location
    l'emportent sur les directives <code class="directive">Redirect</code> et <code class="directive"><a href="#alias">Alias</a></code> comportant un argument
    <var>URL-path</var>.</p></div>

    <p>Si aucun argument <var>état</var> n'est spécifié, la
    redirection sera temporaire (code HTTP 302). Le client est alors
    informé que la ressource a été temporairement déplacée. On peut
    utiliser l'argument <var>état</var> pour renvoyer d'autres codes HTTP :</p>

    <dl>
      <dt>permanent</dt>

      <dd>Renvoie un code de redirection permanente (301), indiquant
      que la ressource a été définitivement déplacée.</dd>

      <dt>temp</dt>

      <dd>Renvoie un code de redirection temporaire (302). C'est le
      comportement par défaut.</dd>

      <dt>seeother</dt>

      <dd>Renvoie un code "See Other" (303) indiquant que la ressource
      a été remplacée par une autre.</dd>

      <dt>gone</dt>

      <dd>Renvoie un code "Gone" (410) indiquant que la ressource a
      été définitivement supprimée. Lorsque
      ce code est utilisé, on ne
      doit pas utiliser l'argument <var>URL</var>.</dd>
    </dl>

    <p>On peut renvoyer d'autres codes en spécifiant le code
    numérique comme valeur de l'argument of <var>état</var>.
    Si le code est compris entre 300 et 399, l'argument
    <var>URL</var> doit être présent. Si le code
    n'est <em>pas</em> compris entre 300 et 399, l'argument
    <var>URL</var> ne doit pas apparaître. Le code doit être un code
    HTTP valide, connu du serveur HTTP Apache (voir la
    fonction <code>send_error_response</code> dans
    http_protocol.c).</p>

    <pre class="prettyprint lang-config">Redirect permanent "/one" "http://example.com/two"
Redirect 303 "/three" "http://example.com/other"</pre>


    <p>Si une directive <code class="directive">Redirect</code> est définie au
    sein d'une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> et si l'argument <var>URL-path</var> est omis, l'argument <var>URL</var> sera interprété en
    utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
    Cette syntaxe est disponible à partir de la version 2.4.19 du
    serveur HTTP Apache.</p>

    <pre class="prettyprint lang-config">&lt;Location "/one"&gt;
    Redirect permanent "http://example.com/two"
&lt;/Location&gt;
&lt;Location "/three"&gt;
    Redirect 303 "http://example.com/other"
&lt;/Location&gt;
&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
    Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
&lt;/LocationMatch&gt;</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="redirectmatch" id="redirectmatch">Directive</a> <a name="RedirectMatch" id="RedirectMatch">RedirectMatch</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe faisant appel aux
expressions rationnelles pour la mise en correspondance de l'URL
courante</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectMatch [<var>état</var>] <var>regex</var>
<var>URL</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>Cette directive est identique à la directive <code class="directive"><a href="#redirect">Redirect</a></code>, mais fait appel aux
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la
    place d'une simple mise en correspondance de préfixe. L'expression
    rationnelle fournie est mise en correspondance avec le chemin URL,
    et si elle correspond, le serveur va substituer toute partie de
    chemin correspondante entre parenthèses dans la chaîne spécifiée et
    l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
    les fichiers GIF vers les fichiers JPEG de même nom sur un autre
    serveur, on peut utiliser :</p>

    <pre class="prettyprint lang-config">RedirectMatch "(.*)\.gif$" "http://autre.example.com$1.jpg"</pre>


    <p>Les remarques à propos de la différence entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> s'appliquent aussi à la
    différence entre les directives <code class="directive"><a href="#redirect">Redirect</a></code> et <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>. Voir la directive
    <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de
    détails.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="redirectpermanent" id="redirectpermanent">Directive</a> <a name="RedirectPermanent" id="RedirectPermanent">RedirectPermanent</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe permanente demandant au
client d'effectuer une nouvelle requête avec une URL
différente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectPermanent <var>chemin URL</var> <var>URL</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>Cette directive informe le client que la redirection est
    permanente (code 301). Son comportement est exactement le même
    que celui de <code>Redirect permanent</code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="redirecttemp" id="redirecttemp">Directive</a> <a name="RedirectTemp" id="RedirectTemp">RedirectTemp</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe temporaire demandant au
client d'effectuer une nouvelle requête avec une URL
différente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectTemp <var>chemin URL</var> <var>URL</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>Cette directive informe le client que la redirection n'est
    que temporaire (code 302). Son comportement est exactement le même
    que celui de <code>Redirect temp</code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptalias" id="scriptalias">Directive</a> <a name="ScriptAlias" id="ScriptAlias">ScriptAlias</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers
et désigne la cible comme script CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAlias [<var>chemin URL</var>]
<var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>La directive <code class="directive">ScriptAlias</code> présente le même
    comportement que la directive <code class="directive"><a href="#alias">Alias</a></code>, mais désigne en plus le
    répertoire cible comme conteneur de scripts CGI qui seront traitées
    par le gestionnaire cgi-script du module <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>.
    Les URLs dont le chemin URL sensible à la casse (décodé avec
    caractères %) commence par <var>chemin URL</var> seront mises en
    correspondance avec les scripts dont le chemin commence par le
    second argument, qui est un chemin complet dans le système de
    fichiers local.</p>

    <pre class="prettyprint lang-config">ScriptAlias "/cgi-bin/" "/web/cgi-bin/"</pre>


    <p>Une requête pour <code>http://example.com/cgi-bin/foo</code>
    ferait exécuter par le serveur le script
    <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
    équivalente à :</p>
    <pre class="prettyprint lang-config">Alias "/cgi-bin/" "/web/cgi-bin/"
&lt;Location "/cgi-bin"&gt;
    SetHandler cgi-script
    Options +ExecCGI
&lt;/Location&gt;</pre>


	<p>Vous pouvez aussi utiliser <code class="directive">ScriptAlias</code>
	avec un script ou gestionnaire de votre cru. Par exemple :</p>

	<pre class="prettyprint lang-config">ScriptAlias "/cgi-bin/" "/web/cgi-handler.pl"</pre>


    <p>Dans ce scénario, tous les fichiers faisant l'objet d'une requête
    dans <code>/cgi-bin/</code> seront traités par le fichier que vous
    avez spécifié, ce qui vous permet d'utiliser votre propre
    gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
    les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>

    <div class="warning">Il est préférable d'éviter de placer les
    scripts CGI dans l'arborescence de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> afin d'éviter de révéler
    accidentellement leur code source lors d'une modification de
    configuration. On y parvient aisément avec
    <code class="directive">ScriptAlias</code> en mettant en correspondance une
    URL et en désignant la cible comme scripts CGI par la même occasion.
    Si vous choisissez de placer vos scripts CGI dans un répertoire
    accessible depuis le web, n'utilisez pas
    <code class="directive">ScriptAlias</code>. Utilisez plutôt <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code>, et <code class="directive"><a href="../mod/core.html#options">Options</a></code> comme dans l'exemple suivant :
    <pre class="prettyprint lang-config">&lt;Directory "/usr/local/apache2/htdocs/cgi-bin"&gt;
    SetHandler cgi-script
    Options ExecCGI
&lt;/Directory&gt;</pre>

    Ceci est nécessaire car plusieurs <var>chemins URL</var> peuvent
    correspondre à la même zone du système de fichiers, court-circuitant
    ainsi la directive <code class="directive">ScriptAlias</code> et révélant le
    code source des scripts CGI s'ils ne sont pas protégés par une
    section <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>.</div>

    <p>Si la directive <code class="directive">ScriptAlias</code> est définie au
    sein d'une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> et si l'argument <var>chemin
    URL</var> est omis, l'argument <var>URL</var> sera interprété en
    utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
    Cette syntaxe est disponible à partir de la version 2.4.19 du
    serveur HTTP Apache.</p>

    <pre class="prettyprint lang-config">&lt;Location "/cgi-bin"&gt;
    ScriptAlias "/web/cgi-bin/"
&lt;/Location&gt;
&lt;LocationMatch "/cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)"&gt;
    ScriptAlias "/web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
&lt;/LocationMatch&gt;</pre>



<h3>Voir aussi</h3>
<ul>
<li><a href="../howto/cgi.html">Tutoriel CGI</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptaliasmatch" id="scriptaliasmatch">Directive</a> <a name="ScriptAliasMatch" id="ScriptAliasMatch">ScriptAliasMatch</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers
en faisant appel aux expressions rationnelles et en désignant la cible
comme un script CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAliasMatch <var>regex</var>
<var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
</table>
    <p>Cette directive est équivalente à la directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code>, mais fait appel aux
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la
    place d'une simple mise en correspondance de préfixe. L'expression
    rationnelle fournie est mise en correspondance avec le chemin URL,
    et si elle correspond, le serveur va substituer toute partie de
    chemin entre parenthèses dans la chaîne spécifiée et l'utiliser
    comme nom de fichier. Par exemple, pour activer le répertoire
    standard <code>/cgi-bin</code>, on peut utiliser :</p>

    <pre class="prettyprint lang-config">ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"</pre>


    <p>Comme dans le cas d'AliasMatch, toute la puissance des <a class="glossarylink" href="../glossary.html#rexex" title="voir glossaire">expressions rationnelles</a> peut être mise à
    contribution. Par exemple, il est possible de construire un alias
    avec une comparaison du modèle du chemin URL insensible à la casse :</p>

    <pre class="prettyprint lang-config">ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"</pre>


    <p>Les remarques à propos de la différence entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> s'appliquent aussi à la
    différence entre les directives <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> et <code class="directive"><a href="#scriptaliasmatch">ScriptAliasMatch</a></code>. Voir la directive
    <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de
    détails.</p>


</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_alias.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_alias.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>