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
647
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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=ISO-8859-1" http-equiv="Content-Type" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_headers - Serveur Apache HTTP Version 2.5</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/quickreference.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 Apache HTTP Version 2.5</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_headers</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_headers.html" title="Fran�ais"> fr </a> |
<a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Personnalisation des en-t�tes de requ�tes et de r�ponses
HTTP</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>headers_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_headers.c</td></tr></table>
<h3>Sommaire</h3>
<p>Ce module fournit des directives permettant de contr�ler et
modifier les en-t�tes de requ�tes et de r�ponses HTTP. Les en-t�tes
peuvent �tre fusionn�s, remplac�s ou supprim�s.</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#early">Traitement pr�coce et traitement
tardif</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
</ul>
<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_headers">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_headers">Report a bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<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 directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent
s'ins�rer presque partout dans la configuration du serveur, et on
peut limiter leur port�e en les pla�ant dans des <a href="../sections.html">sections de configuration</a>.</p>
<p>La chronologie du traitement est importante et est affect�e par
l'ordre d'apparition des directives dans le fichier de configuration
et par leur placement dans les <a href="../sections.html#mergin">sections de configuration</a>. Ainsi,
ces deux directives ont un effet diff�rent si leur ordre est invers�
:</p>
<pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
RequestHeader unset MirrorID</pre>
<p>Dans cet ordre, l'en-t�te <code>MirrorID</code> n'est pas d�fini.
Si l'ordre des directives �tait invers�, l'en-t�te
<code>MirrorID</code> serait d�fini � "mirror 12".</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="early" id="early">Traitement pr�coce et traitement
tardif</a></h2>
<p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir pr�cocement, soit
tardivement au niveau de la requ�te. Le mode normal est le mode
tardif, lorsque les en-t�tes de <em>requ�te</em> sont d�finis, imm�diatement
avant l'ex�cution du g�n�rateur de contenu, et pour les en-t�tes de
<em>r�ponse</em>, juste au moment o� la r�ponse est envoy�e sur le r�seau.
Utilisez toujours le mode tardif sur un serveur en production.</p>
<p>Le mode pr�coce a �t� con�u � des fins d'aide aux tests et au
d�bogage pour les d�veloppeurs. Les directives d�finies en utilisant
le mot-cl� <code>early</code> sont cens�es agir au tout d�but du
traitement de la requ�te. Cela signifie que l'on peut les utiliser
pour simuler diff�rentes requ�tes et d�finir des situations de test,
tout en gardant � l'esprit que les en-t�tes peuvent �tre modifi�s �
tout moment par d'autres modules avant que le r�ponse ne soit
g�n�r�e.</p>
<p>Comme les directives pr�coces sont trait�es avant que le
chemin de la requ�te ne soit parcouru, les en-t�tes
pr�coces ne peuvent �tre d�finis que dans un contexte de serveur
principal ou de serveur virtuel. Les directives pr�coces ne peuvent
pas d�pendre d'un chemin de requ�te, si bien qu'elles �choueront
dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#location"><Location></a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemples</a></h2>
<ol>
<li>
Copie tous les en-t�tes de requ�te qui commencent par "TS" vers
les en-t�tes de la r�ponse :
<pre class="prettyprint lang-config">Header echo ^TS</pre>
</li>
<li>
Ajoute � la r�ponse un en-t�te, <code>mon-en-t�te</code>, qui
contient un horodatage permettant de d�terminer le moment o� la
requ�te a �t� re�ue, et le temps qui s'est �coul� jusqu'� ce que
la requ�te ait commenc� � �tre servie. Cet en-t�te peut �tre
utilis� par le client pour estimer la charge du serveur ou
isoler les goulets d'�tranglement entre le client et le
serveur.
<pre class="prettyprint lang-config">Header set mon-en-t�te "%D %t"</pre>
<p>le r�sultat est l'ajout � la r�ponse d'un en-t�te du type :</p>
<div class="example"><p><code>
mon-en-t�te: D=3775428 t=991424704447256
</code></p></div>
</li>
<li>
Dit Bonjour � Joe
<div class="example"><p><code>
Header set mon-en-t�te "Bonjour Joe. Il a fallu %D microsecondes \<br />
� Apache pour servir cette requ�te."
</code></p></div>
<p>le r�sultat est l'ajout � la r�ponse d'un en-t�te du type :</p>
<pre class="prettyprint lang-config"> Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes � Apache
pour servir cette requ�te."</pre>
</li>
<li>
Ajoute l'en-t�te <code>mon-en-t�te</code> � la r�ponse si et
seulement si l'en-t�te <code>mon-en-t�te-requ�te</code> est
pr�sent dans la requ�te. Ceci peut s'av�rer utile pour g�n�rer
des en-t�tes de r�ponse "� la t�te du client". Notez que cet
exemple n�cessite les services du module
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>.
<pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
<p>Si l'en-t�te <code>mon-en-t�te-requ�te: mavaleur</code> est
pr�sent dans la requ�te HTTP, la r�ponse contiendra un en-t�te
du type :</p>
<div class="example"><p><code>
mon-en-t�te: D=3775428 t=991424704447256 montexte
</code></p></div>
</li>
<li>
Permet � DAV de fonctionner avec Apache sur SSL (voir la <a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">description
du probl�me</a>) en rempla�ant <var>https:</var> par
<var>http:</var> dans l'en-t�te <var>Destination</var> :
<pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
</li>
<li>
D�finit la valeur d'un m�me en-t�te sous de multiples conditions
non exclusives, mais ne duplique pas une valeur d�j� d�finie
dans l'en-t�te qui en r�sulte. Si toutes les conditions
suivantes sont satisfaites pour une requ�te (en d'autres termes,
si les trois variables d'environnement <code>CGI</code>,
<code>NO_CACHE</code> et <code>NO_STORE</code> existent pour la
requ�te) :
<pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
Header merge Cache-Control no-cache env=NO_CACHE
Header merge Cache-Control no-store env=NO_STORE</pre>
<p>alors, la r�ponse contiendra l'en-t�te suivant :</p>
<div class="example"><p><code>
Cache-Control: no-cache, no-store
</code></p></div>
<p>Si <code>append</code> avait �t� utilis� � la place de
<code>merge</code>, la r�ponse aurait contenu l'en-t�te suivant
:</p>
<div class="example"><p><code>
Cache-Control: no-cache, no-cache, no-store
</code></p></div>
</li>
<li>
D�finit un cookie de test si et seulement si le client n'envoie
pas de cookie
<pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
</li>
<li>
Ajoute un en-t�te de mise en cache pour les r�ponses avec un
code d'�tat HTTP de 200
<pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
</li>
</ol>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="header" id="header">Directive</a> <a name="Header" id="Header">Header</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-t�tes d'une r�ponse HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Header [<var>condition</var>] add|append|echo|edit|edit*|merge|set|setifempty|unset|note
<var>en-t�te</var> [[expr=]<var>valeur</var>
[<var>remplacement</var>]
[early|env=[!]<var>variable</var>|expr=<var>expression</var>]]
</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>SetIfEmpty est disponible depuis la version 2.4.7 du
serveur HTTP Apache ; le param�tre expr=valeur a �t� introduit avec la
version 2.4.10</td></tr>
</table>
<p>Cette directive permet de remplacer, fusionner, ou
supprimer des en-t�tes de r�ponse HTTP. L'en-t�te est modifi� juste
apr�s que le gestionnaire de contenu et les filtres en sortie ne
s'ex�cutent, ce qui permet la modification des en-t�tes
sortants.</p>
<p>L'argument optionnel <var>condition</var> permet de d�terminer
sur quelle table interne d'en-t�tes de r�ponses cette directive va
op�rer. En d�pit du nom, la valeur par d�faut de
<code>onsuccess</code> ne limite <em>pas</em> une <var>action</var>
aux r�ponses avec un code d'�tat de 2xx. Les en-t�tes d�finis sous
cette condition sont encore utilis�s quand par exemple une requ�te
est mandat�e ou g�n�r�e par un programme CGI avec <em>succ�s</em>,
et ceci m�me dans le cas o� ils ont g�n�r� un code d'�chec.</p>
<p>Lorsque votre action est une fonction agissant sur un en-t�te
existant, vous pourrez �tre amen� � sp�cifier une condition
<code>always</code>, en fonction de la table interne dans laquelle
l'en-t�te original a �t� d�fini. La table qui correspond �
<code>always</code> est utilis�e pour les r�ponses d'erreur g�n�r�es
localement ainsi que pour les r�ponses qui ont abouti.
Notez aussi que la r�p�tition
de cette directive avec les deux conditions peut �tre pertinente
dans certains sc�narios, car <code>always</code> n'englobe pas
<code>onsuccess</code> en ce qui concerne les en-t�tes existants :</p>
<ul>
<li>Vous ajoutez un en-t�te � une r�ponse
g�n�r�e localement et �chou�e (non-2xx),
une redirection par exemple, et dans ce cas, seule la table
correspondant � <code>always</code> est utilis�e dans la r�ponse
d�finitive.</li>
<li>Vous modifiez ou supprimez un en-t�te g�n�r� par un script
CGI, et dans ce cas, les scripts CGI sont dans la table
correspondant � <code>always</code> et non dans la table par
d�faut.</li>
<li>Vous modifiez ou supprimez un en-t�te g�n�r� par tel ou tel
composant du serveur, mais cet en-t�te n'est pas trouv� par la
condition par d�faut <code>onsuccess</code>.</li>
</ul>
<p>Outre le param�tre <var>condition</var> d�crit ci-dessus, vous
pouvez limiter une action en fonction de codes d'�tat HTTP, par
exemple pour les requ�tes mandat�es ou g�n�r�es par un programme
CGI. Voir l'exemple qui utilise %{REQUEST_STATUS} dans la section
ci-dessus.</p>
<p>L'action que cette directive provoque est d�termin�e par le
premier argument (ou par le second argument si une
<var>condition</var> est sp�cifi�e). Il peut prendre
une des valeurs suivantes :</p>
<dl>
<dt><code>add</code></dt>
<dd>L'en-t�te est ajout� au jeu d'en-t�tes pr�existant, m�me s'il
existe d�j�. Ceci peut conduire � la pr�sence de deux (ou plusieurs)
en-t�tes poss�dant le m�me nom et donc induire des cons�quences
impr�vues ; en g�n�ral, il est pr�f�rable d'utiliser
<code>set</code>, <code>append</code> ou <code>merge</code>.</dd>
<dt><code>append</code></dt>
<dd>La valeur d'en-t�te est ajout�e � tout en-t�te existant de m�me
nom. Lorsqu'une nouvelle valeur est ainsi ajout�e, elle est s�par�e
de celles qui sont d�j� pr�sentes par une virgule. Il s'agit de la
m�thode HTTP standard permettant d'affecter plusieurs valeurs � un
en-t�te.</dd>
<dt><code>echo</code></dt>
<dd>Les en-t�tes de la requ�te poss�dant le nom sp�cifi� sont
recopi�s vers les en-t�tes de la r�ponse. <var>en-t�te</var> peut
�tre une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
<var>valeur</var> ne doit pas �tre pr�sent.</dd>
<dt><code>edit</code></dt>
<dt><code>edit*</code></dt>
<dd>Si l'en-t�te existe, sa valeur est modifi�e en fonction d'une
<a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
recherche/remplacement. L'argument <var>valeur</var> est une
<a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
l'argument <var>remplacement</var> une cha�ne de caract�res de
remplacement qui peut contenir des r�f�rences
arri�res ou des sp�cificateurs de format. La forme <code>edit</code> n'effectuera une
recherche/remplacement qu'une seule fois dans la valeur de
l'en-t�te, alors que la forme <code>edit*</code> en effectuera autant
que le nombre d'apparition de la cha�ne � remplacer.</dd>
<dt><code>merge</code></dt>
<dd>La valeur d'en-t�te est ajout�e � tout en-t�te de m�me nom, sauf
si elle appara�t d�j� dans la liste des valeurs pr�existantes de
l'en-t�te s�par�es par des virgules. Lorsqu'une nouvelle valeur est
ainsi ajout�e, elle est s�par�e de celles qui sont d�j� pr�sentes
par une virgule. Il s'agit de la m�thode HTTP standard permettant
d'affecter plusieurs valeurs � un en-t�te. Les valeurs sont
compar�es en tenant compte de la casse, et apr�s le traitement de
tous les sp�cificateurs de format. Une valeur entour�e de guillemets
est consid�r�e comme diff�rente de la m�me valeur mais sans
guillemets.</dd>
<dt><code>set</code></dt>
<dd>L'en-t�te est d�fini, rempla�ant tout en-t�te pr�existant avec
le m�me nom. L'argument <var>valeur</var> peut �tre une cha�ne de
formatage.</dd>
<dt><code>setifempty</code></dt>
<dd>L'en-t�te est d�fini, mais seulement s'il n'existe
aucun en-t�te avec le m�me nom.<br />
Disponible depuis la version 2.4.7 du serveur HTTP Apache.</dd>
<dt><code>unset</code></dt>
<dd>L'en-t�te est supprim� s'il existe. Si plusieurs en-t�tes
poss�dent le m�me nom, ils seront tous supprim�s. L'argument
<var>value</var> ne doit pas appara�tre.</dd>
<dt><code>note</code></dt>
<dd>La valeur de l'<var>en-t�te</var> consid�r� est copi�e dans une
note interne dont le nom est sp�cifi� via l'argument
<var>valeur</var>. Ceci permet de journaliser la valeur d'un en-t�te
envoy� par un programme CGI ou une ressource mandat�e, m�me s'il
est pr�vu de l'effacer.<br />
Disponible � partir de la version 2.4.7 du serveur HTTP Apache.</dd>
</dl>
<p>Cet argument est suivi d'un nom d'<var>en-t�te</var> qui peut se
terminer par un caract�re ':', mais ce n'est pas obligatoire. La
casse est ignor�e avec <code>set</code>, <code>append</code>,
<code>merge</code>, <code>add</code>, <code>unset</code> et
<code>edit</code>. Le nom d'<var>en-t�te</var> est sensible � la
casse pour <code>echo</code> et peut �tre une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>
<p>Avec <code>set</code>, <code>append</code>, <code>merge</code> et
<code>add</code>, une <var>valeur</var> est sp�cifi�e comme
argument suivant. Si <var>valeur</var> contient des espaces, elle
doit �tre entour�e de guillemets. <var>valeur</var> peut �tre une
cha�ne de caract�res, une cha�ne contenant des sp�cificateurs de
format propres � <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> (et des caract�res
litt�raux), ou une expression <a href="../expr.html">ap_expr</a>
pr�fix�e par <em>expr=</em>.</p>
<p><var>valeur</var> supporte les sp�cificateurs de format suivants :</p>
<table class="bordered"><tr class="header"><th>Format</th><th>Description</th></tr>
<tr><td><code>%%</code></td>
<td>Le caract�re pourcentage</td></tr>
<tr class="odd"><td><code>%t</code></td>
<td>Le moment de r�ception de la requ�te en temps
universel coordonn� depuis le temps epoch (Jan. 1, 1970) et
exprim� en microsecondes. La valeur est pr�c�d�e de
<code>t=</code>.</td></tr>
<tr><td><code>%D</code></td>
<td>Le temps �coul� entre la r�ception de la requ�te et l'envoi
des en-t�tes sur le r�seau. Il s'agit de la dur�e de traitement
de la requ�te. La valeur est pr�c�d�e de <code>D=</code>. La
valeur est exprim�e en microsecondes.</td></tr>
<tr class="odd"><td><code>%l</code></td>
<td>La charge moyenne courante du serveur proprement dit. Ce
sont les valeurs obtenues par <code>getloadavg()</code> qui
repr�sentent la charge moyenne courante, sur 5 minutes et sur 15
minutes. Chaque valeur est pr�c�d�e de <code>l=</code> et
s�par�e de la suivante par un <code>/</code>.<br />
Disponible depuis la version 2.4.4 du serveur HTTP Apache.
</td></tr>
<tr><td><code>%i</code></td>
<td>Le pourcentage courant de httpd au repos (de 0 � 100)
en se basant sur le nombre de processus et threads disponibles.
La valeur est pr�c�d�e de <code>i=</code>.<br />
Disponible depuis la version 2.4.4 du serveur HTTP Apache.
</td></tr>
<tr class="odd"><td><code>%b</code></td>
<td>Le pourcentage courant de httpd utilis� (de 0 � 100)
en se basant sur le nombre de processus et threads disponibles.
La valeur est pr�c�d�e de <code>b=</code>.<br />
Disponible depuis la version 2.4.4 du serveur HTTP Apache.
</td></tr>
<tr><td><code>%{NOM_VARIABLE}e</code></td>
<td>Le contenu de la <a href="../env.html">variable
d'environnement</a> <code>NOM_VARIABLE</code>.</td></tr>
<tr class="odd"><td><code>%{NOM_VARIABLE}s</code></td>
<td>Le contenu de la <a href="../env.html">variable
d'environnement SSL</a> <code>NOM_VARIABLE</code>, si
<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est activ�.</td></tr>
</table>
<div class="note"><h3>Note</h3>
<p>Le sp�cificateur de format <code>%s</code> est disponible
depuis la version 2.1 d'Apache ; il peut �tre utilis� � la place
de <code>%e</code> pour �viter de devoir sp�cifier
<code>SSLOptions +StdEnvVars</code>. Cependant, si
<code>SSLOptions +StdEnvVars</code> doit tout de m�me �tre
sp�cifi� pour une raison quelconque, <code>%e</code> sera plus
efficace que <code>%s</code>.</p>
</div>
<div class="note"><h3>Note � propos des valeurs des expressions</h3>
<p>Lorsque le param�tre valeur utilise l'interpr�teur <a href="../expr.html">ap_expr</a>, certaines syntaxes d'expressions
seront diff�rentes des exemples qui �valuent des expressions
<em>bool�ennes</em> telles que <If> :</p>
<ul>
<li>Le point de d�part de la syntaxe est 'string' au lieu de
'expr'.</li>
<li>Les appels de fonction utilisent la syntaxe %{funcname:arg} au
lieu de funcname(arg).</li>
<li>Les fonctions multi-arguments ne sont pas encore disponibles
depuis le point de d�part 'string'.</li>
<li>Il faut mettre entre guillemets l'ensemble du param�tre, comme
dans l'exemple suivant :
<pre class="prettyprint lang-config">Header set foo-checksum "expr=%{md5:foo}"</pre>
</li>
</ul>
</div>
<p><code>edit</code>n�cessite les deux arguments
<var>valeur</var>, qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
rationnelle</a>, et une cha�ne additionnelle
<var>remplacement</var>. Depuis la version 2.4.7, la cha�ne de
remplacement peut aussi
contenir des sp�cificateurs de format.</p>
<p>La directive <code class="directive">Header</code> peut �tre suivie d'un
argument additionnel qui peut prendre les valeurs suivantes :</p>
<dl>
<dt><code>early</code></dt>
<dd>Sp�cifie <a href="#early">traitement pr�alable</a>.</dd>
<dt><code>env=[!]<var>variable</var></code></dt>
<dd>La directive est appliqu�e si et seulement si la <a href="../env.html">variable d'environnement</a>
<code>variable</code> existe. Un <code>!</code> devant
<code>variable</code> inverse le test, et la directive ne
s'appliquera alors que si <code>variable</code> n'est pas d�finie.</dd>
<dt><code>expr=<var>expression</var></code></dt>
<dd>La directive s'applique si et seulement si <var>expression</var>
est �valu�e � true. Vous trouverez plus de d�tails � propos de la
syntaxe et de l'�valuation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.
<pre class="prettyprint lang-config"> # Cet exemple retarde l'�valuation de la clause de condition par
# rapport � <If>
Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path.php$#"</pre>
</dd>
</dl>
<p>Except� le cas du mode <a href="#early">pr�coce</a>, les
directives <code class="directive">Header</code> sont trait�es juste avant
l'envoi de la r�ponse sur le r�seau. Cela signifie qu'il est
possible de d�finir et/ou modifier la plupart des en-t�tes, �
l'exception de certains en-t�tes qui sont ajout�s par le filtre
d'en-t�te HTTP. Avant la version 2.2.12, il n'�tait pas
possible de modifier l'en-t�te Content-Type avec cette directive.</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="requestheader" id="requestheader">Directive</a> <a name="RequestHeader" id="RequestHeader">RequestHeader</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-t�tes d'une requ�te HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RequestHeader add|append|edit|edit*|merge|set|setifempty|unset
<var>en-t�te</var> [[expr=]<var>valeur</var>
[<var>remplacement</var>]
[early|env=[!]<var>variable</var>|expr=<var>expression</var>]]
</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>SetIfEmpty est disponible depuis la version 2.4.7 du
serveur HTTP Apache ; le param�tre expr=valeur a �t� introduit avec la
version 2.4.10</td></tr>
</table>
<p>Cette directive permet de remplacer, fusionner, modifier ou
supprimer des en-t�tes de requ�te HTTP. L'en-t�te est modifi� juste
avant que le gestionnaire de contenu ne s'ex�cute, ce qui permet la
modification des en-t�tes entrants. L'action effectu�e est
d�termin�e par le premier argument. Ce dernier accepte les valeurs
suivantes :</p>
<dl>
<dt><code>add</code></dt>
<dd>L'en-t�te est ajout� au jeu d'en-t�tes pr�existant, m�me s'il
existe d�j�. Ceci peut conduire � la pr�sence de deux (ou plusieurs)
en-t�tes poss�dant le m�me nom et donc induire des cons�quences
impr�vues ; en g�n�ral, il est pr�f�rable d'utiliser
<code>set</code>, <code>append</code> ou <code>merge</code>.</dd>
<dt><code>append</code></dt>
<dd>La valeur d'en-t�te est ajout�e � tout en-t�te existant de m�me
nom. Lorsqu'une nouvelle valeur est ainsi ajout�e, elle est s�par�e
de celles qui sont d�j� pr�sentes par une virgule. Il s'agit de la
m�thode HTTP standard permettant d'affecter plusieurs valeurs � un
en-t�te.</dd>
<dt><code>edit</code></dt>
<dt><code>edit*</code></dt>
<dd>Si l'en-t�te existe, sa valeur est modifi�e en fonction d'une
<a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
recherche/remplacement. L'argument <var>valeur</var> est une
<a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
l'argument <var>remplacement</var> une cha�ne de caract�res de
remplacement qui peut contenir des r�f�rences
arri�res ou des sp�cificateurs de format. Avec
<code>edit</code>, la cha�ne de l'en-t�te correspondant au mod�le ne
sera recherch�e et remplac�e qu'une seule fois, alors qu'avec
<code>edit*</code>, elle le sera pour chacune de ses instances si
elle appara�t plusieurs fois.</dd>
<dt><code>merge</code></dt>
<dd>La valeur d'en-t�te est ajout�e � tout en-t�te de m�me nom, sauf
si elle appara�t d�j� dans la liste des valeurs pr�existantes de
l'en-t�te s�par�es par des virgules. Lorsqu'une nouvelle valeur est
ainsi ajout�e, elle est s�par�e de celles qui sont d�j� pr�sentes
par une virgule. Il s'agit de la m�thode HTTP standard permettant
d'affecter plusieurs valeurs � un en-t�te. Les valeurs sont
compar�es en tenant compte de la casse, et apr�s le traitement de
tous les sp�cificateurs de format. Une valeur entour�e de guillemets
est consid�r�e comme diff�rente de la m�me valeur mais sans
guillemets.</dd>
<dt><code>set</code></dt>
<dd>L'en-t�te est d�fini, rempla�ant tout en-t�te pr�existant avec
le m�me nom.</dd>
<dt><code>setifempty</code></dt>
<dd>L'en-t�te est d�fini, mais seulement s'il n'existe
aucun en-t�te avec le m�me nom.<br />
Disponible depuis la version 2.4.7 du serveur HTTP Apache.</dd>
<dt><code>unset</code></dt>
<dd>L'en-t�te est supprim� s'il existe. Si plusieurs en-t�tes
poss�dent le m�me nom, ils seront tous supprim�s. L'argument
<var>value</var> ne doit pas appara�tre.</dd>
</dl>
<p>Cet argument est suivi d'un nom d'en-t�te qui peut se terminer
par un caract�re ':', mais ce n'est pas obligatoire. La casse est
ignor�e. Avec <code>set</code>, <code>append</code>,
<code>merge</code> et <code>add</code>, une <var>valeur</var> est
fournie en troisi�me argument. Si une <var>valeur</var> contient des
espaces, elle doit �tre entour�e de guillemets. Avec
<code>unset</code>, aucune <var>valeur</var> ne doit appara�tre.
<var>valeur</var> peut �tre une cha�ne de caract�res, une cha�ne
contenant des sp�cificateurs de format, ou une combinaison des deux.
Les sp�cificateurs de format support�s sont les m�mes que ceux de la
directive <code class="directive"><a href="#header">Header</a></code>, �
laquelle vous pouvez vous reporter pour plus de d�tails. Avec
<code>edit</code>, les deux arguments <var>valeur</var> et
<var>remplacement</var> sont obligatoires, et correspondent
respectivement � une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
rationnelle</a> et � une cha�ne de remplacement.</p>
<p>La directive <code class="directive">RequestHeader</code> peut �tre
suivie d'un argument suppl�mentaire, qui pourra prendre les valeurs
suivantes :</p>
<dl>
<dt><code>early</code></dt>
<dd>Sp�cifie <a href="#early">traitement pr�alable</a>.</dd>
<dt><code>env=[!]<var>variable</var></code></dt>
<dd>La directive est appliqu�e si et seulement si la <a href="../env.html">variable d'environnement</a>
<code>variable</code> existe. Un <code>!</code> devant
<code>variable</code> inverse le test, et la directive ne
s'appliquera alors que si <code>variable</code> n'est pas d�finie.</dd>
<dt><code>expr=<var>expression</var></code></dt>
<dd>La directive s'applique si et seulement si <var>expression</var>
est �valu�e � true. Vous trouverez plus de d�tails � propos de la
syntaxe et de l'�valuation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.</dd>
</dl>
<p>Except� le cas du mode <a href="#early">pr�coce</a>, la directive
<code class="directive">RequestHeader</code> est trait�e juste avant la
prise en compte de la requ�te par son gestionnaire, au cours de la
phase de v�rification. Ceci permet la modification des en-t�tes
g�n�r�s par le navigateur, ou par les filtres en entr�e
d'Apache.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_headers.html" title="Fran�ais"> fr </a> |
<a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean"> ko </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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again 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 Freenode, or sent to our <a href="http://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/trunk/mod/mod_headers.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 2016 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/quickreference.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>
|