]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_headers.html.ja.utf8
Rebuild transformations.
[apache] / docs / manual / mod / mod_headers.html.ja.utf8
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>mod_headers - Apache HTTP サーバ</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
16 <p class="apache">Apache HTTP サーバ バージョン 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
19 <div id="path">
20 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン
21             2.3</a> &gt; <a href="./">モジュール</a></div>
22 <div id="page-content">
23 <div id="preamble"><h1>Apache モジュール mod_headers</h1>
24 <div class="toplang">
25 <p><span>言語: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
26 <a href="../fr/mod/mod_headers.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
27 <a href="../ja/mod/mod_headers.html" title="Japanese">&nbsp;ja&nbsp;</a> |
28 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
29 </div>
30 <div class="outofdate">この日本語訳はすでに古くなっている可能性があります。
31           更新された内容を見るには英語版をご覧下さい。</div>
32 <table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>HTTP リクエストのヘッダと応答のヘッダのカスタマイズ</td></tr>
33 <tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
34 <tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>headers_module</td></tr>
35 <tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_headers.c</td></tr>
36 <tr><th><a href="module-dict.html#Compatibility">互換性:</a></th><td><code class="directive"><a href="#requestheader">RequestHeader</a></code> 
37 は Apache 2.0 以降のみで使用可能</td></tr></table>
38 <h3>概要</h3>
39
40     <p>このモジュールは HTTP のリクエストヘッダと応答ヘッダを制御し、
41     変更するためのディレクティブを提供します。ヘッダを追加したり、
42     置き換えたり、削除したりすることができます。</p>
43 </div>
44 <div id="quickview"><h3 class="directives">ディレクティブ</h3>
45 <ul id="toc">
46 <li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
48 </ul>
49 <h3>トピック</h3>
50 <ul id="topics">
51 <li><img alt="" src="../images/down.gif" /> <a href="#order">処理の順番</a></li>
52 <li><img alt="" src="../images/down.gif" /> <a href="#early">早期処理、後期処理</a></li>
53 <li><img alt="" src="../images/down.gif" /> <a href="#examples">例</a></li>
54 </ul></div>
55 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
56 <div class="section">
57 <h2><a name="order" id="order">処理の順番</a></h2>
58
59     <p><code class="module"><a href="../mod/mod_header.html">mod_header</a></code> のディレクティブはサーバ設定のほぼどこにでも
60     書くことができ、影響する範囲を<a href="../sections.html">設定用セクション</a>で囲むことで限定する
61     ことができます。</p>
62
63     <p>処理の順番は重要で、設定ファイル中の順番と、<a href="../sections.html">設定用セクション</a>内の位置との両方に
64     影響されます。以下の二つのヘッダは順番が逆になると
65     違う結果になります:</p>
66
67     <div class="example"><p><code>
68       RequestHeader append MirrorID "mirror 12"<br />
69       RequestHeader unset MirrorID
70     </code></p></div>
71
72     <p>この順番の場合は、<code>MirrorID</code> ヘッダは設定されません。
73     逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。</p>
74 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
75 <div class="section">
76 <h2><a name="early" id="early">早期処理、後期処理</a></h2>
77     <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> では、リクエストの早期か後期かの
78     どちらで適用するかを選べます。通常は後期モードで、
79     コンテンツ生成が実行される直前にリクエストヘッダがセットされ、
80     レスポンスとして送出される直前にレスポンスヘッダがセットされます。
81     運用中のサーバでは必ず後期モードを使ってください。</p>
82
83     <p>早期モードは開発者向けのテスト/デバッグ用に設計されています。
84     <code>early</code> キーワード指定されたディレクティブによって、
85     リクエスト処理の開始地点になります。
86     つまり、異なるリクエストを試したりテストケースをセットアップするのに
87     活用できる一方で、レスポンスを生成する前に他のモジュールによって
88     ヘッダが書き換えられてしまうかもしれないということを意味します。</p>
89
90     <p>early ディレクティブではリクエストパスの設定が解決される前に
91     処理されるので、メインサーバかバーチャルホストコンテキストでのみ、
92     早期ヘッダをセットできます。early ディレクティブはリクエストパスに
93     依存することはできませんので、<code>&lt;Directory&gt;</code> や
94     <code>&lt;Location&gt;</code> といったコンテキスト内では使用
95     できません。</p>
96 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
97 <div class="section">
98 <h2><a name="examples" id="examples">例</a></h2>
99
100     <ol>
101       <li>リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに
102         コピーします:
103         <div class="example"><p><code>
104           Header echo ^TS
105         </code></p></div>
106       </li>
107
108       <li>
109         リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、
110         <code>MyHeader</code> を応答に追加します。このヘッダはクライアントが
111         サーバの負荷を直観的に知るためや、クライアント-サーバ間の
112         ボトルネックを調べるために使うことができます。
113
114         <div class="example"><p><code>
115            Header add MyHeader "%D %t"
116         </code></p></div>
117
118         <p>上記の設定では、以下のようなヘッダが応答に追加されることになります:</p>
119
120         <div class="example"><p><code>
121            MyHeader: D=3775428 t=991424704447256
122         </code></p></div>
123       </li>
124
125       <li>
126         Joe にあいさつをします:
127
128         <div class="example"><p><code>
129            Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
130         </code></p></div>
131
132         <p>以下のようなヘッダが応答に追加されることになります</p>
133
134         <div class="example"><p><code>
135            MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.
136         </code></p></div>
137       </li>
138
139       <li>リクエストに "MyRequestHeader" があるときに限り <code>MyHeader</code> を応答に
140       付けます。これは、クライアントの要求に応えてヘッダを作成するときに
141       役に立ちます。この例では <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールが必要なことに
142       注意してください。
143
144         <div class="example"><p><code>
145            SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
146            Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
147         </code></p></div>
148
149         <p>もし HTTP リクエストに <code>MyRequestHeader: value</code> ヘッダが
150         あると、応答には以下のようなヘッダが付加されます。</p>
151
152         <div class="example"><p><code>
153            MyHeader: D=3775428 t=991424704447256 mytext
154         </code></p></div>
155       </li>
156     </ol>
157 </div>
158 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
159 <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">ディレクティブ</a></h2>
160 <table class="directive">
161 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP 応答ヘッダの設定</td></tr>
162 <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Header [<var>condition</var>] set|append|add|unset|echo
163 <var>header</var> [<var>value</var>] [early|env=[!]<var>variable</var>]</code></td></tr>
164 <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
165 <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr>
166 <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
167 <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_headers</td></tr>
168 </table>
169     <p>このディレクティブは HTTP 応答ヘッダを置換、追加、削除できます。
170     ヘッダはコンテントハンドラや出力フィルタが実行された直後に実行され、
171     出て行くヘッダを変更できるようになっています。</p>
172
173     <p>オプションの <var>condition</var> は <code>onsuccess</code> か
174     <code>always</code> のどちらかを指定できます。これは内部ヘッダテーブルのどれを
175     操作するかを決定します。<code>onsuccess</code> は <code>2<var>xx</var></code>
176     ステータスコードの、<code>always</code> は全てのステータスコード
177     (<code>2<var>xx</var></code> を含む) の意味になります。
178     あるモジュールでセットされるヘッダをアンセットしたい場合は特に、
179     どのテーブルが影響を受けるかを実際に試したほうがよいでしょう。</p>
180
181     <p>行なう処理は二番目のの引数で決まります。
182     この引数には次の値を指定できます:</p>
183
184     <dl>
185     <dt><code>set</code></dt>
186     <dd>応答ヘッダを設定します。同じ名前のヘッダが存在する場合はそれを
187     置き換えます。<em>value</em> にはフォーマット文字列を
188     指定することもできます。</dd>
189
190     <dt><code>append</code></dt>
191     <dd>応答ヘッダを既に存在する同じ名前のヘッダに追加します。
192     新しい値が既存のヘッダに追加されるときには、既存のヘッダの
193     後にコンマで区切られて追加されます。これはヘッダに複数の値を
194     指定するときの HTTP の標準の方法です。</dd>
195
196     <dt><code>add</code></dt>
197     <dd>ヘッダが既に存在しているときでさえも、応答ヘッダを
198     既存のヘッダに追加します。これにより、二つ (かそれ以上) の
199     ヘッダの名前が同じになることがあります。その結果、想定できない
200     ことが起こる可能性がありますので、一般的には <code>append</code> の方を
201     使う方が良いでしょう。</dd>
202
203     <dt><code>unset</code></dt>
204     <dd>もし指定された名前の応答ヘッダが存在していれば、削除されます。
205     同じ名前のヘッダが複数あるときは、すべて削除されます。
206     <var>value</var> をつけてはいけません。</dd>
207
208     <dt><code>echo</code></dt>
209     <dd>指定されたものと同じ名前のリクエストヘッダを応答ヘッダで
210     そのまま返します。<var>header</var> には正規表現も指定できます。
211     <var>value</var> をつけてはいけません。</dd>
212     </dl>
213
214     <p>この引数の後にはヘッダ名 (<var>header</var>) が続きます。
215     ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。
216     <code>set</code>, <code>append</code>, <code>add</code>,
217     <code>unset</code> では大文字小文字は
218     区別されません。echo の <em>header</em> 名は大文字小文字を区別し、
219     正規表現を指定することもできます。</p>
220
221     <p><code>add</code>, <code>append</code>,
222     <code>set</code> では <var>value</var> を三つ目の
223     引数として指定します。<var>value</var> に空白がある場合は二重引用符で
224     囲む必要があります。<var>value</var> は文字のみからなる文字列、
225     フォーマット指示子を含む文字列、もしくは両方からなる文字列を指定できます。
226     <var>value</var> は以下のフォーマット指示子をサポートします:</p>
227
228     <table class="bordered"><tr class="header"><th>フォーマット</th><th>解説</th></tr>
229 <tr><td><code>%%</code></td>
230         <td>パーセント記号</td></tr>
231 <tr class="odd"><td><code>%t</code></td>
232         <td>リクエストを受け取った時刻を、
233         Universal Coordinated Time での始まりの時刻 (Jan. 1, 1970) から経過した
234         時間をマイクロ秒として現したもの。値の最初には 
235         <code>t=</code> が付加されます。</td></tr>
236 <tr><td><code>%D</code></td>
237         <td>リクエストを受け取った時刻と、ヘッダを送り出した
238         時間との差。これは、リクエストが存在していた期間を現します。
239         値の最初には <code>D=</code> が付加されます。</td></tr>
240 <tr class="odd"><td><code>%{FOOBAR}e</code></td>
241         <td><a href="../env.html">環境変数</a>
242         <code>FOOBAR</code> の値です。</td></tr>
243 <tr><td><code>%{FOOBAR}s</code></td>
244         <td><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> が有効な場合、
245         <a href="mod_ssl.html#envvars">SSL 環境変数</a> <code>FOOBAR</code>
246         の内容</td></tr>
247 </table>
248
249     <div class="note"><h3>注</h3>
250       <p><code>%s</code> フォーマット指定子は 2.1 以降でのみ利用できます。
251       <code>SSLOptions +StdEnvVars</code> を有効にすることによるオーバーヘッドを
252       避けるため、<code>%e</code> の代わりとして使えます。
253       他の理由などがあって、どうしても <code>SSLOptions +StdEnvVars</code> 
254       を有効にしなければならない場合は、<code>%e</code> のほうが
255       <code>%s</code> よりも処理効率は良いです。</p>
256     </div> 
257
258     <p><code class="directive">Header</code> ディレクティブには追加の引数を持たせることが
259     できて、どういったアクションが行われたかの条件を指定したり、
260     <a href="#early">早期処理</a> を指定する <code>early</code> キーワードを
261     指定できます。
262     <code>env=...</code> 引数で指定された <a href="../env.html">環境変数</a> が存在する (もしくは <code>env=!...</code>
263     が指定されていて環境変数が存在しない) 場合は、<code class="directive">Header</code>
264     ディレクティブで指定された動作が行なわれます。そうでない場合は、
265     ディレクティブはそのリクエストには何もしません。</p>
266
267     <p><a href="#early">早期処理</a>モードの場合以外では、
268     <code class="directive">Header</code>
269     ディレクティブは応答がネットワークに送られる直前に
270     処理されます。これは、ヘッダフィルタにより追加されるヘッダを
271     除き、ほとんどのヘッダを設定したり上書きしたりすることが
272     可能、ということです。</p>
273
274 </div>
275 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
276 <div class="directive-section"><h2><a name="RequestHeader" id="RequestHeader">RequestHeader</a> <a name="requestheader" id="requestheader">ディレクティブ</a></h2>
277 <table class="directive">
278 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP リクエストヘッダの設定</td></tr>
279 <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>RequestHeader set|append|add|unset <var>header</var>
280 [<var>value</var>] [early|env=[!]<var>variable</var>]</code></td></tr>
281 <tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
282 <tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>FileInfo</td></tr>
283 <tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
284 <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_headers</td></tr>
285 </table>
286     <p>このディレクティブは HTTP リクエストヘッダを置換、追加、削除できます。
287     ヘッダはコンテントハンドラが実行される直前に実行され、
288     入って来るヘッダを変更することが可能になっています。
289     行なう処理は第 1 引数により決まります。これには以下の値を指定
290     することができます:</p>
291
292     <dl>
293     <dt><code>set</code></dt>
294     <dd>リクエストヘッダを設定します。同じ名前のヘッダが存在していると、
295     それを置き換えます。</dd>
296
297     <dt><code>append</code></dt>
298     <dd>リクエストヘッダは、既に存在する同じ名前のヘッダに追加されます。
299     新しい値が既存のヘッダに追加されるときには、既存のヘッダの
300     後にコンマで区切られて追加されます。これはヘッダに複数の値を
301     指定するときの HTTP の標準の方法です。</dd>
302
303     <dt><code>add</code></dt>
304     <dd>ヘッダが既に存在しているときでさえも、リクエストヘッダを
305     既存のヘッダに追加します。これにより、二つ (かそれ以上) の
306     ヘッダの名前が同じになることがあります。その結果、想定できない
307     ことが起こる可能性がありますので、一般的には <code>append</code> の方を
308     使う方が良いでしょう。</dd>
309
310     <dt><code>unset</code></dt>
311     <dd>もし指定された名前のリクエストヘッダが存在していれば、削除されます。
312     同じ名前の複数のヘッダがあるときは、すべて削除されます。
313     <var>value</var> をつけてはいけません。</dd>
314     </dl>
315
316     <p>この引数の後にはヘッダ名 (<em>header</em>) が続きます。
317     ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。
318     大文字小文字は区別されません。<code>add</code>,
319     <code>append</code>, <code>set</code> の場合は、<em>value</em> が三つ目の
320     引数として指定されます。<em>value</em> に空白がある場合は二重引用符で
321     囲む必要があります。unset の場合は、<em>value</em> は指定しません。
322     <var>value</var> は文字列、フォーマット指定子、あるいは、その混合です。
323     使うことのできるフォーマット指定子は、<code class="directive"><a href="#header">Header</a></code> と同じですので、
324     詳細はそちらをご覧ください。</p>
325
326     <p><code class="directive">RequestHeader</code> ディレクティブは、
327     どういった条件下でアクションを行うかを指定する追加引数
328     あるいは、<a href="#early">早期処理</a> を指定する <code>early</code> 
329     キーワードを設定することができます。
330     <code>env=<var>...</var></code> の引数で設定されている
331     <a href="../env.html">環境変数</a> が存在している
332     (あるいは <code>env=!<var>...</var></code> で指定された環境変数が
333     存在しない) 場合、<code class="directive">RequestHeader</code> ディレクティブは
334     有効になります。それ以外の場合、ディレクティブは効力を持ちません。</p>
335
336     <p><a href="#early">early</a> モードでない場合に限り、
337     <code class="directive">RequestHeader</code> ディレクティブは
338     fixup フェーズでリクエストがハンドラに扱われる直前に
339     処理されます。これにより、ブラウザや Apache の入力フィルタにより
340     生成されたヘッダを上書きしたり修正したりできるようになっています。</p>
341
342 </div>
343 </div>
344 <div class="bottomlang">
345 <p><span>言語: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
346 <a href="../fr/mod/mod_headers.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
347 <a href="../ja/mod/mod_headers.html" title="Japanese">&nbsp;ja&nbsp;</a> |
348 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
349 </div><div id="footer">
350 <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
351 <p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
352 </body></html>