.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 ^Mozilla forms jpeg=yes browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript
値 | 説明 |
---|---|
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]] ...
SetEnvIf ディレクティブ
クライアントからのリクエストヘッダに含まれる attribute が、指定した regex
と一致した場合、env-variable を設定します。regex
には、正規表現が使用できます。環境変数については、"HTTP環境変数" の章を参照して下さい。以下は、本ディレクティブの構文となります。
# SetEnvIf ディレクティブの構文
SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
attribute には、HTTP リクエスト (RFC 2616 (例えば、Host
、User-Agent
、Referer
、Accept-Language
など))、または以下のリクエストヘッダの情報を指定します。
値 | 説明 |
---|---|
Remote_Host | クライアント、またはプロキシサーバなどのホスト名 |
Remote_Addr | クライアント、またはプロキシサーバなどのIPアドレス |
Server_Addr | リクエストを受け取ったサーバの IP アドレス (Apache 2.0.43 以降) |
Request_Method | 使用される HTTP メソッド名 (GET や POST など) |
Request_Protocol | プロトコルの名前とバージョン情報 (HTTP/1.0 や HTTP/1.1 など) |
Request_URI | URL のスキームとホスト名に続くパス情報 |
env-variable や regex
については、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
SetEnvIfNoCase ディレクティブ
本ディレクティブは、SetEnvIfディレクティブと同様の機能です。ただし、regex
属性に指定した正規表現を評価するときに、大文字と小文字を区別しません。以下は、本ディレクティブの構文となります。
# SetEnvIfNoCase ディレクティブの構文
SetEnvIfNoCase attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
関連記事
- .htaccess - コア機能
- .htaccess - mod_actions
- .htaccess - mod_alias
- .htaccess - mod_auth_basic
- .htaccess - mod_authn_default
- .htaccess - mod_authn_file
- .htaccess - mod_authz_default
- .htaccess - mod_authz_groupfile
- .htaccess - mod_authz_host
- .htaccess - mod_authz_user
- .htaccess - mod_autoindex
- .htaccess - mod_env
- .htaccess - mod_expires
- .htaccess - mod_filter
- .htaccess - mod_headers
- .htaccess - mod_imagemap
- .htaccess - mod_include
- .htaccess - mod_mime
- .htaccess - mod_negotiation
- .htaccess - mod_dir
- .htaccess - mod_rewrite