Apache HTTP サーバ バージョン 2.4

| 説明: | リクエストの特徴に基づいた環境変数の設定を可能にする | 
|---|---|
| ステータス: | Base | 
| モジュール識別子: | setenvif_module | 
| ソースファイル: | mod_setenvif.c | 
mod_setenvif
    モジュールは、リクエストのある側面が指定された正規表現
    に合うかどうかによって環境変数を設定する機能を提供します。
    これらの環境変数を使用して、サーバの他の部分がどのような動作をするかを
    決定することができます。
このモジュールが提供するディレクティブは、
    設定ファイルに現れる順番に適用されます。
    それを使って、次の例のようにより複雑な設定をすることができます。
    これは、ブラウザが mozilla ではあるけれど、MSIE ではないときに
    netscape を設定します。
  BrowserMatch ^Mozilla netscape
  BrowserMatch MSIE !netscape
| 説明: | HTTP User-Agent に基づいて環境変数を設定する | 
|---|---|
| 構文: | BrowserMatch regex [!]env-variable[=value]
[[!]env-variable[=value]] ... | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| 上書き: | FileInfo | 
| ステータス: | Base | 
| モジュール: | mod_setenvif | 
BrowserMatch は
  SetEnvIf ディレクティブの
  特例で、User-Agent HTTP リクエストヘッダに基づいて
  環境変数を設定します。以下の 2 行の効果は同じになります:
   BrowserMatchNoCase Robot is_a_robot
 
   SetEnvIfNoCase User-Agent Robot is_a_robot
 
その他の例:
    BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
    BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
    BrowserMatch MSIE !javascript
| 説明: | HTTP User-Agent に基づいて大文字小文字を区別せずに 環境変数を設定する | 
|---|---|
| 構文: | BrowserMatchNoCase  regex [!]env-variable[=value]
    [[!]env-variable[=value]] ... | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| 上書き: | FileInfo | 
| ステータス: | Base | 
| モジュール: | mod_setenvif | 
BrowserMatchNoCase ディレクティブは
    意味的には BrowserMatch ディレクティブと
    同じです。ただし、このディレクティブは大文字小文字を区別しない
    マッチングを行ないます。例えば:
    BrowserMatchNoCase mac platform=macintosh
    BrowserMatchNoCase win platform=windows
BrowserMatch ディレクティブと
    BrowserMatchNoCase ディレクティブは
    SetEnvIf ディレクティブと
    SetEnvIfNoCase ディレクティブの
    特例です。以下の 2 行の効果は同じです:
   BrowserMatchNoCase Robot is_a_robot
   SetEnvIfNoCase User-Agent Robot is_a_robot
| 説明: | リクエストの属性に基づいて環境変数を設定する | 
|---|---|
| 構文: | SetEnvIf attribute
    regex [!]env-variable[=value]
    [[!]env-variable[=value]] ... | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| 上書き: | FileInfo | 
| ステータス: | Base | 
| モジュール: | mod_setenvif | 
SetEnvIf
    ディレクティブは、リクエストの属性に基づいて環境変数を定義します。
    最初の引数で指定できる attribute は以下の 4 つのどれかです:
Host,
    User-Agent, Referer, 
    Accept-Language です。リクエストヘッダの集合を現すために
    正規表現を使うこともできます。Remote_Host -
      リクエストを行なっているクライアントのホスト名 (もしあれば)Remote_Addr -
      リクエストを行なっているクライアントの IP アドレスServer_Addr - 
      リクエストを受け取ったサーバの IP アドレス
      (2.0.43 以降のみ)Request_Method -
      使用されているメソッド名 (GET, POST
      など)Request_Protocol -
      リクエストが行なわれたプロトコルの名前とバージョン
      (例えば、"HTTP/0.9", "HTTP/1.1" など。)Request_URI -
      URL のスキームとホストの後の部分。
      追加の情報として、クエリーストリングにマッチさせる場合については
      RewriteCond
      ディレクティブを参照してください。SetEnvIf ディレクティブが以前のマッチの結果を
使うことができるようになります。この方法のテストでは前の部分にある
SetEnvIf[NoCase] の結果のみを使用可能です。「前」とは、
より広い範囲に対して定義されている (サーバ全体のように) か、現在のディレクティブの
範囲でより前の部分で定義されているか、ということです。
環境変数である可能性は、リクエストの特性に対するマッチが存在せず、
attribute に正規表現が使われなかったときにのみ考慮されます。',' 区切りで連結されます。
 oid は文字列型拡張への参照でなければなりません。
二つ目の引数 (regex) は 正規表現です。 これは POSIX.2 の egrep 形式の正規表現と似ています。regex が attribute にマッチする場合は、残りの引数が評価されます。
残りの引数は設定する変数の名前で、設定される値を指定することもできます。 これは、
varname!varnamevarname=valueのどれかの形式になります。
最初の形式では、値は "1" に設定されます。
    二つ目はもし値が定義されていればそれを取り除きます。
    三つ目は変数を value の与えられた値に設定します。
    2.0.51 以降では、value 内に $1..$9
    が存在すればそれを認識し、regex の対応する丸括弧で囲まれた部分で
    置換します。
   SetEnvIf Request_URI "\.gif$" object_is_image=gif
   SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
   SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
        :
   SetEnvIf Referer www\.mydomain\.example\.com intra_site_referral
        :
   SetEnvIf object_is_image xbm XBIT_PROCESSING=1
        :
   SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" NetscapeComment=$1
        :
   SetEnvIf ^TS*  ^[a-z].*  HAVE_TS
初めの三つはリクエストが画像であるときに環境変数
    object_is_image を設定します。四つ目は
    参照元のページがウェブサイト www.mydomain.example.com にあるときに
    intra_site_referral を設定します。
6番目の例では環境変数 NetscapeComment を定義して、
    その値が SSL クライアント証明書の対応するフィールドの文字列であるようにします。
    ただし SSL クライアント証明書の対応するフィールドに文字列が存在する
    ときにのみ、環境変数は設定されます。
最後の例は、リクエストに "TS" で始まり、値が集合 [a-z] のどれかで
    始まるヘッダがあるときに HAVE_TS を設定します。
| 説明: | Sets environment variables based on an ap_expr expression | 
|---|---|
| 構文: |  | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| ステータス: | Base | 
| モジュール: | mod_setenvif | 
Documentation not yet translated. Please see English version of document.
| 説明: | リクエストの属性に基づいて大文字小文字を区別せずに環境変数を設定する | 
|---|---|
| 構文: | SetEnvIfNoCase attribute regex 
        [!]env-variable[=value]
    [[!]env-variable[=value]] ... | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| 上書き: | FileInfo | 
| ステータス: | Base | 
| モジュール: | mod_setenvif | 
SetEnvIfNoCase は意味的には
    SetEnvIf ディレクティブと
    同じです。違いは、正規表現のマッチングが大文字小文字を区別しないで
    行なわれることです。例えば:
   SetEnvIfNoCase Host Apache\.Org site=apache
これは HTTP リクエストヘッダにフィールド Host: が
    あり、その値が Apache.Org や apache.org、
    その他の大文字小文字の組み合わせであったときに site
    環境変数を "apache" に設定します。