GCS Amplitude
GCS Amplitude

Apache モジュール mod_setenvif

モジュールは、リクエストのある側面が指定された正規表現 に合うかどうかによって環境変数を設定する機能を提供します。 これらの環境変数を使用して、サーバの他の部分がどのような動作をするかを 決定することができます。mod_setenvif

このモジュールが提供するディレクティブは、 設定ファイルに現れる順番に適用されます。 それを使って、次の例のようにより複雑な設定をすることができます。 これは、ブラウザが mozilla ではあるけれど、MSIE ではないときに netscape

BrowserMatch regex [!]env-variable[=value] [[!]env-variable[=value]] ...

SetEnvIfNoCase User-Agent Robot isarobot

BrowserMatch ^Mozilla forms jpeg=yes browser=netscape

BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript

BrowserMatchNoCase mac platform=macintosh

BrowserMatchNoCase win platform=windows

ディレクティブの 特例です。以下の 2 行の効果は同じです:SetEnvIfNoCase

です。リクエストヘッダの集合を現すために 正規表現を使うこともできます。Remote_Host

- リクエストを受け取ったサーバの IP アドレス (2.0.43 以降のみ)Request_Method

- URL のスキームとホストの後の部分。 追加の情報として、クエリーストリングにマッチさせる場合については RewriteCond

ディレクティブが以前のマッチの結果を 使うことができるようになります。この方法のテストでは前の部分にある SetEnvIf[NoCase]

の結果のみを使用可能です。「前」とは、 より広い範囲に対して定義されている (サーバ全体のように) か、現在のディレクティブの 範囲でより前の部分で定義されているか、ということです。 環境変数である可能性は、リクエストの特性に対するマッチが存在せず、 ','

区切りで連結されます。 二つ目の引数 (regex) は 正規表現です。 これは POSIX.2 の egrep 形式の正規表現と似ています。regex が attribute にマッチする場合は、残りの引数が評価されます。

最初の形式では、値は "1" に設定されます。 二つ目はもし値が定義されていればそれを取り除きます。 三つ目は変数を

の与えられた値に設定します。 2.0.51 以降では、valuevalue 内に $1

が存在すればそれを認識し、regex の対応する丸括弧で囲まれた部分で 置換します。

SetEnvIf RequestURI "\.gif$" objectis_image=gif

SetEnvIf RequestURI "\.jpg$" objectis_image=jpg

SetEnvIf RequestURI "\.xbm$" objectis_image=xbm

SetEnvIf Referer www\.mydomain\.example\.com intrasitereferral

SetEnvIf objectisimage xbm XBIT_PROCESSING=1

SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" NetscapeComment=$1

SetEnvIf ^TS ^[a-z]. HAVE_TS

を設定します。四つ目は 参照元のページがウェブサイト www.mydomain.example.com

を定義して、 その値が SSL クライアント証明書の対応するフィールドの文字列であるようにします。 ただし SSL クライアント証明書の対応するフィールドに文字列が存在する ときにのみ、環境変数は設定されます。

最後の例は、リクエストに "TS" で始まり、値が集合 [a-z] のどれかで 始まるヘッダがあるときに HAVE_TS

SetEnvIfNoCase Host Apache\.Org site=apache

モジュール | ディレクティブ | FAQ | 用語 | サイトマップ

Apache HTTP サーバ バージョン 2.4

Apache モジュール mod_setenvif

翻訳済み言語: en | fr | ja | ko | tr

BrowserMatch ディレクティブ

BrowserMatch は SetEnvIf ディレクティブの 特例で、User-Agent HTTP リクエストヘッダに基づいて 環境変数を設定します。以下の 2 行の効果は同じになります:

BrowserMatchNoCase ディレクティブ

BrowserMatchNoCase ディレクティブは 意味的には BrowserMatch ディレクティブと 同じです。ただし、このディレクティブは大文字小文字を区別しない マッチングを行ないます。例えば:

SetEnvIf ディレクティブ

SetEnvIf ディレクティブは、リクエストの属性に基づいて環境変数を定義します。 最初の引数で指定できる attribute は以下の 4 つのどれかです:

SetEnvIfExpr ディレクティブ

Documentation not yet translated. Please see English version of document.

SetEnvIfNoCase ディレクティブ

SetEnvIfNoCase は意味的には SetEnvIf ディレクティブと 同じです。違いは、正規表現のマッチングが大文字小文字を区別しないで 行なわれることです。例えば: