このモジュールは HTTP のリクエストヘッダと応答ヘッダを制御し、 変更するためのディレクティブを提供します。ヘッダを追加したり、 置き換えたり、削除したりすることができます。
処理の順番は重要で、設定ファイル中の順番と、設定用セクション内の位置との両方に 影響されます。以下の二つのヘッダは順番が逆になると 違う結果になります:
この順番の場合は、MirrorID
ヘッダは設定されません。
逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。
早期モードは開発者向けのテスト/デバッグ用に設計されています。
early
キーワード指定されたディレクティブによって、
リクエスト処理の開始地点になります。
つまり、異なるリクエストを試したりテストケースをセットアップするのに
活用できる一方で、レスポンスを生成する前に他のモジュールによって
ヘッダが書き換えられてしまうかもしれないということを意味します。
early ディレクティブではリクエストパスの設定が解決される前に
処理されるので、メインサーバかバーチャルホストコンテキストでのみ、
早期ヘッダをセットできます。early ディレクティブはリクエストパスに
依存することはできませんので、<Directory>
や
<Location>
といったコンテキスト内では使用
できません。
MyHeader
を応答に追加します。このヘッダはクライアントが
サーバの負荷を直観的に知るためや、クライアント-サーバ間の
ボトルネックを調べるために使うことができます。
上記の設定では、以下のようなヘッダが応答に追加されることになります:
以下のようなヘッダが応答に追加されることになります
MyHeader
を応答に
付けます。これは、クライアントの要求に応えてヘッダを作成するときに
役に立ちます。この例では もし HTTP リクエストに MyRequestHeader: value
ヘッダが
あると、応答には以下のようなヘッダが付加されます。
このディレクティブは HTTP リクエストヘッダを置換、追加、削除できます。 ヘッダはコンテントハンドラが実行される直前に実行され、 入って来るヘッダを変更することが可能になっています。 行なう処理は第 1 引数により決まります。これには以下の値を指定 することができます:
set
append
add
append
の方を
使う方が良いでしょう。unset
この引数の後にはヘッダ名 (header) が続きます。
ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。
大文字小文字は区別されません。add
,
append
, set
の場合は、value が三つ目の
引数として指定されます。value に空白がある場合は二重引用符で
囲む必要があります。unset の場合は、value は指定しません。
value は文字列、フォーマット指定子、あるいは、その混合です。
使うことのできるフォーマット指定子は、
early
キーワードを設定することができます。
env=...
の引数で設定されている
環境変数 が存在している
(あるいは env=!...
で指定された環境変数が
存在しない) 場合、
early モードでない場合に限り、
このディレクティブは HTTP 応答ヘッダを置換、追加、削除できます。 ヘッダはコンテントハンドラや出力フィルタが実行された直後に実行され、 出て行くヘッダを変更できるようになっています。
オプションの condition は onsuccess
か
always
のどちらかを指定できます。これは内部ヘッダテーブルのどれを
操作するかを決定します。onsuccess
は 2xx
ステータスコードの、always
は全てのステータスコード
(2xx
を含む) の意味になります。
あるモジュールでセットされるヘッダをアンセットしたい場合は特に、
どのテーブルが影響を受けるかを実際に試したほうがよいでしょう。
行なう処理は二番目のの引数で決まります。 この引数には次の値を指定できます:
set
append
add
append
の方を
使う方が良いでしょう。unset
echo
この引数の後にはヘッダ名 (header) が続きます。
ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。
set
, append
, add
,
unset
では大文字小文字は
区別されません。echo の header 名は大文字小文字を区別し、
正規表現を指定することもできます。
add
, append
,
set
では value を三つ目の
引数として指定します。value に空白がある場合は二重引用符で
囲む必要があります。value は文字のみからなる文字列、
フォーマット指示子を含む文字列、もしくは両方からなる文字列を指定できます。
value は以下のフォーマット指示子をサポートします:
フォーマット | 解説 |
---|---|
%% |
パーセント記号 |
%t |
リクエストを受け取った時刻を、
Universal Coordinated Time での始まりの時刻 (Jan. 1, 1970) から経過した
時間をマイクロ秒として現したもの。値の最初には
t= が付加されます。 |
%D |
リクエストを受け取った時刻と、ヘッダを送り出した
時間との差。これは、リクエストが存在していた期間を現します。
値の最初には D= が付加されます。 |
%{FOOBAR}e |
環境変数
FOOBAR の値です。 |
%{FOOBAR}s |
FOOBAR
の内容 |
%s
フォーマット指定子は 2.1 以降でのみ利用できます。
SSLOptions +StdEnvVars
を有効にすることによるオーバーヘッドを
避けるため、%e
の代わりとして使えます。
他の理由などがあって、どうしても SSLOptions +StdEnvVars
を有効にしなければならない場合は、%e
のほうが
%s
よりも処理効率は良いです。
early
キーワードを
指定できます。
env=...
引数で指定された 環境変数 が存在する (もしくは env=!...
が指定されていて環境変数が存在しない) 場合は、
早期処理モードの場合以外では、