2.3.144 SetEnvIf
クライアントからのリクエストを基に環境変数を定義する場合に指定します。
説明
クライアントからのリクエスト値が正規表現で表した条件を満たす場合、指定した環境変数を設定します。
書式
SetEnvIf リクエスト値 正規表現 環境変数[=値] [環境変数[=値] ...]
指定できる値
- リクエスト値
-
HTTPリクエストヘッダーか次の表に示す値を指定できます。先に指定された環境変数をリクエスト値として指定することで環境変数の検査ができます。ただし、この場合の環境変数は、HTTPリクエストヘッダーにも次の表に示す指定値にも一致していない必要があります。
リクエスト値
意味
Remote_Addr
クライアントのIPアドレス
Remote_Host
クライアントのホスト名(リクエストに設定されている場合だけ)
Request_Protocol
リクエストのプロトコル(HTTP/1.1 など)
Request_Method
リクエストのメソッド名(GET、POST、HEADなど)
Request_URI
リクエストのURI
Server_Addr
リクエストを受信したサーバのIPアドレス
このディレクティブを複数指定する場合、同じリクエスト値は複数指定できません。
なお、リクエスト値にRemote_Hostを指定した場合、正規表現にはIPv6アドレスに対応したホスト名も指定できます。また、IPv6を使用した接続に対しては、Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は、HWSSetEnvIfIPv6ディレクティブで設定してください。
- 正規表現
-
条件を指定します。
- 環境変数
-
クライアントからのリクエスト値が正規表現で表した条件を満たす場合に設定する環境変数を指定します。
環境変数の前に!を付けると、その環境変数の設定を解除します。
- 値
-
環境変数の値を指定します。
設定する値のデフォルト値は1です。
記述できる場所
httpsd.conf、<VirtualHost>、<Directory>、.htaccess
上書き許可
FileInfoレベル
記述例
- (例1)
-
SetEnvIf User-Agent "Mozilla.*" SETENVIF_USER_AGENT=Mozilla
- (例2)
-
SetEnvIf Request_URI "\.(gif)|(jpg)$" request_is_image
- (例3)
-
IPv4を使用した接続のうち、特定のクライアントに対して環境変数を設定する場合は、次のように指定します。
Listen 123.123.123.123:80 Listen [2001::123:4567:89ab:cdef]:80 <VirtualHost 123.123.123.123:80> SetEnvIf Remote_Addr ^234\.234\.234\.234$ IPV4_CLIENT </VirtualHost>