このモジュールが提供するディレクティブは、
設定ファイルに現れる順番に適用されます。
それを使って、次の例のようにより複雑な設定をすることができます。
これは、ブラウザが mozilla ではあるけれど、MSIE ではないときに
netscape
を設定します。
User-Agent
HTTP リクエストヘッダに基づいて
環境変数を設定します。以下の 2 行の効果は同じになります:
その他の例:
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 のスキームとホストの後の部分。
追加の情報として、クエリーストリングにマッチさせる場合については
SetEnvIf[NoCase]
の結果のみを使用可能です。「前」とは、
より広い範囲に対して定義されている (サーバ全体のように) か、現在のディレクティブの
範囲でより前の部分で定義されているか、ということです。
環境変数である可能性は、リクエストの特性に対するマッチが存在せず、
attribute に正規表現が使われなかったときにのみ考慮されます。','
区切りで連結されます。
oid は文字列型拡張への参照でなければなりません。
二つ目の引数 (regex) は
残りの引数は設定する変数の名前で、設定される値を指定することもできます。 これは、
varname
!varname
varname=value
のどれかの形式になります。
最初の形式では、値は "1" に設定されます。
二つ目はもし値が定義されていればそれを取り除きます。
三つ目は変数を value
の与えられた値に設定します。
2.0.51 以降では、value 内に $1
..$9
が存在すればそれを認識し、regex の対応する丸括弧で囲まれた部分で
置換します。
初めの三つはリクエストが画像であるときに環境変数
object_is_image
を設定します。四つ目は
参照元のページがウェブサイト www.mydomain.example.com
にあるときに
intra_site_referral
を設定します。
6番目の例では環境変数 NetscapeComment
を定義して、
その値が SSL クライアント証明書の対応するフィールドの文字列であるようにします。
ただし SSL クライアント証明書の対応するフィールドに文字列が存在する
ときにのみ、環境変数は設定されます。
最後の例は、リクエストに "TS" で始まり、値が集合 [a-z] のどれかで
始まるヘッダがあるときに HAVE_TS
を設定します。
これは HTTP リクエストヘッダにフィールド Host:
が
あり、その値が Apache.Org
や apache.org
、
その他の大文字小文字の組み合わせであったときに site
環境変数を "apache
" に設定します。