.htaccess - mod_setenvif

mod_setenvif

以下は、mod_setenvif モジュールのディレクティブの一覧です。mod_setenvif は、リクエストの特徴に合わせて環境変数の設定を可能にします。このモジュールが提供するディレクティブは、設定ファイルに現れる順番に適用されます。

BrowserMatch ディレクティブ

BrowserMatch ディレクティブは、 User-Agent HTTP リクエストヘッダの内容と regex が一致した場合、env-variable を設定します。regex には、正規表現が使用できます。env-variableには、環境変数を指定します。env-variable には、! や、指定した値 value が設定できます。以下は、本ディレクティブの構文となります。

# BrowserMatch ディレクティブの構文
BrowserMatch regex [!]env-variable[=value] [[!]env-variable[=value]] ...
BrowserMatch ディレクティブの構文
# BrowserMatch ディレクティブの設定例
BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript
BrowserMatch ディレクティブの設定例
BrowserMatch ディレクティブの設定値一覧
説明
env-variable指定した環境変数の値を "1" に設定します。
!env-variable指定した環境変数がすでに設定されていた場合、その環境変数を削除します。
env-variable=value指定した環境変数に、指定した値を設定します。

Apache 2.0.51 以降では、value 内に $1..$9 が存在すれば、それらを認識し、regex の対応する丸括弧で囲まれた部分で置換します。詳細は、"後方置換" の章を参照して下さい。

BrowserMatchNoCase ディレクティブ

BrowserMatchNoCase ディレクティブは、BrowserMatch ディレクティブと同様の機能です。ただし、regex 属性に指定した正規表現を評価するときに、大文字と小文字を区別しません。以下は、本ディレクティブの構文となります。

# BrowserMatchNoCase ディレクティブの構文
BrowserMatchNoCase regex [!]env-variable[=value] [[!]env-variable[=value]] ...
BrowserMatchNoCase ディレクティブの構文

SetEnvIf ディレクティブ

クライアントからのリクエストヘッダに含まれる attribute が、指定した regex と一致した場合、env-variable を設定します。regex には、正規表現が使用できます。環境変数については、"HTTP環境変数" の章を参照して下さい。以下は、本ディレクティブの構文となります。

# SetEnvIf ディレクティブの構文
SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
SetEnvIf ディレクティブの構文

attribute には、HTTP リクエスト (RFC 2616 (例えば、HostUser-AgentRefererAccept-Language など))、または以下のリクエストヘッダの情報を指定します。

BrowserMatch ディレクティブの設定値一覧
説明
Remote_Hostクライアント、またはプロキシサーバなどのホスト名
Remote_Addrクライアント、またはプロキシサーバなどのIPアドレス
Server_Addrリクエストを受け取ったサーバの IP アドレス (Apache 2.0.43 以降)
Request_Method使用される HTTP メソッド名 (GETPOST など)
Request_Protocolプロトコルの名前とバージョン情報 (HTTP/1.0HTTP/1.1 など)
Request_URIURL のスキームとホスト名に続くパス情報

env-variableregex については、BrowserMatch ディレクティブと同様です。

# SetEnvIf ディレクティブの設定例
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\.com intra_site_referral
:
SetEnvIf object_is_image xbm XBIT_PROCESSING=1
:
SetEnvIf ^TS* ^[a-z].* HAVE_TS
SetEnvIf ディレクティブの設定例

SetEnvIfNoCase ディレクティブ

本ディレクティブは、SetEnvIfディレクティブと同様の機能です。ただし、regex 属性に指定した正規表現を評価するときに、大文字と小文字を区別しません。以下は、本ディレクティブの構文となります。

# SetEnvIfNoCase ディレクティブの構文
SetEnvIfNoCase attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
SetEnvIfNoCase ディレクティブの構文

関連記事

Category:
プログラミング
公開日:
更新日:
Pageviews:
11
Shares:
0
Tag:
.htaccess
Apache
HTTP
Server