Return-Path: Delivered-To: apmail-apache-cvs-archive@apache.org Received: (qmail 60439 invoked by uid 500); 26 Apr 2001 03:38:42 -0000 Mailing-List: contact apache-cvs-help@apache.org; run by ezmlm Precedence: bulk Reply-To: new-httpd@apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list apache-cvs@apache.org Received: (qmail 60415 invoked by uid 500); 26 Apr 2001 03:38:41 -0000 Delivered-To: apmail-apache-1.3-cvs@apache.org Delivered-To: apmail-httpd-docs-1.3-cvs@apache.org Date: 26 Apr 2001 03:38:39 -0000 Message-ID: <20010426033839.60396.qmail@apache.org> From: yoshiki@apache.org To: httpd-docs-1.3-cvs@apache.org Subject: cvs commit: httpd-docs-1.3/htdocs/manual/mod mod_setenvif.html.html mod_setenvif.html.ja.jis mod_setenvif.html yoshiki 01/04/25 20:38:39 Added: htdocs/manual/mod mod_setenvif.html.html mod_setenvif.html.ja.jis Removed: htdocs/manual/mod mod_setenvif.html Log: New Japanese translation. Revision Changes Path 1.1 httpd-docs-1.3/htdocs/manual/mod/mod_setenvif.html.html Index: mod_setenvif.html.html =================================================================== 1.1 httpd-docs-1.3/htdocs/manual/mod/mod_setenvif.html.ja.jis Index: mod_setenvif.html.ja.jis =================================================================== Apache module mod_setenvif

mod_setenvif モジュール

このモジュールは、リクエストの属性に基づいて環境変数を設定する機能を 提供します。

ステータス: Base
ソースファイル: mod_setenvif.c
モジュール識別子: setenvif_module
互換性: Apache 1.3 以降で使用可能。

概要

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

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

    BrowserMatch ^Mozilla netscape
    BrowserMatch MSIE !netscape
    

詳細は、Apache の環境変数を 参照してください。

ディレクティブ


BrowserMatch ディレクティブ

構文: BrowserMatch regex envar[=value] [envar[=value]] ...
デフォルト: None
コンテキスト: サーバ設定ファイル、バーチャルホスト、 ディレクトリ、.htaccess
上書き: FileInfo
ステータス: Base
モジュール: mod_setenvif
互換性: Apache 1.2 以上 (このディレクティブは Apache 1.2 では、今では obsolete になっている mod_browser モジュールに ありました)。.htaccess ファイルでの使用は 1.3.13 以降でのみサポート。

BrowserMatch ディレクティブは、HTTP リクエストの User-Agent ヘッダフィールドに基づいて環境変数を設定します。最初の引数は POSIX.2 拡張正規表現 (egrep 形式の正規表現と似たもの) です。 残りの引数は、設定をする変数名とその値で、後者は省略可能です。 これらは以下の形式になります。

  1. varname
  2. !varname
  3. varname=value

最初の形式では、値は "1" に設定されます。2 番目は変数が 既に定義されていた場合、それを削除します。3 番目は変数の値を value に設定します。User-Agent フィールドの文字列が複数のエントリにマッチした場合は、その結果が まとめられます。エントリは現れた順に処理され、後のエントリが前のものを 上書きします。

例:

      BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
      BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
      BrowserMatch MSIE !javascript
    

正規表現の文字列は大文字小文字を区別することに 注意してください。大文字小文字を区別しないマッチは BrowserMatchNoCase ディレクティブを参照してください。

BrowserMatch ディレクティブと BrowserMatchNoCase ディレクティブは SetEnvIf ディレクティブと SetEnvIfNoCase ディレクティブの特別なケースです。以下の 2 行は同じ効果になります:

     BrowserMatchNoCase Robot is_a_robot
     SetEnvIfNoCase User-Agent Robot is_a_robot
    

BrowserMatchNoCase ディレクティブ

構文: BrowserMatchNoCase regex envar[=value] [envar[=value]] ...
デフォルト: none
コンテキスト: サーバ設定ファイル、バーチャルホスト、 ディレクトリ、.htaccess
上書き: FileInfo
ステータス: Base
モジュール: mod_setenvif
互換性: Apache 1.2 以上 (このディレクティブは Apache 1.2 では、今では obsolete になっている mod_browser モジュールに ありました)。.htaccess ファイルでの使用は 1.3.13 以降でのみサポート。

BrowserMatchNoCase ディレクティブは、意味的には BrowserMatch ディレクティブとほとんど同じです。違う点は、大文字小文字を区別しないで マッチを行なうことです。例:

      BrowserMatchNoCase mac platform=macintosh
      BrowserMatchNoCase win platform=windows
    

BrowserMatch ディレクティブと BrowserMatchNoCase ディレクティブは SetEnvIf ディレクティブと SetEnvIfNoCase ディレクティブの特別なケースです。以下の 2 行は同じ効果になります:

     BrowserMatchNoCase Robot is_a_robot
     SetEnvIfNoCase User-Agent Robot is_a_robot
    

SetEnvIf ディレクティブ

構文: SetEnvIf attribute regex envar[=value] [envar[=value]] ...
デフォルト: none
コンテキスト: サーバ設定ファイル、バーチャルホスト、 ディレクトリ、.htaccess
上書き: FileInfo
ステータス: Base
モジュール: mod_setenvif
互換性: Apache 1.3 以上。Request_Protocol キーワードと 環境変数のマッチは 1.3.7 以降でのみ使用可能。.htaccess ファイルでの使用は 1.3.13 以降でのみサポート。

SetEnvIf ディレクティブは、リクエストの属性に基づいて 環境変数を定義します。これらの属性は、HTTP リクエストのいろいろなヘッダ フィールド (詳しい情報は RFC 2616 を参照 してください) か、以下のような、リクエストの他の側面であることができます。

  • Remote_Host - リクエストを行なっているクライアントの ホスト名 (もしあれば)
  • Remote_Addr - リクエストを行なっているクライアントの IP アドレス
  • Remote_User - 認証されたユーザ名 (もしあれば)
  • Request_Method - 使用されているメソッド名 (GET, POST など)
  • Request_Protocol - リクエストが行なわれたプロトコルの 名前とバージョン (例えば、"HTTP/0.9", "HTTP/1.1" など。)
  • Request_URI - URL のスキームとホストの後の部分

よく使われるリクエストのヘッダフィールドには Host, User-Agent, Referer があります。

属性名 attribute が特別なキーワードやリクエストのヘッダフィールド名に マッチしないときは、リクエストに関連付けられたリストにある環境変数の 名前として試されます。これにより、SetEnvIf ディレクティブが 前のマッチの結果を使用することができるようになります。

前の SetEnvIf[NoCase] で定義された環境変数のみを この方法で調べることができます。「前」というのは (サーバ全体、のような) より広いスコープで定義されたか、現ディレクティブのスコープの中の前の方で 定義されたという意味です。

例:

     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
    

先頭の三つはリクエストが画像ファイルのときに、環境変数 object_is_image を設定します。4 番目は参照元のページが www.mydomain.com ウェブサイトのどこかにある場合に intra_site_referral を設定します。


SetEnvIfNoCase ディレクティブ

構文: SetEnvIfNoCase attribute regex envar[=value] [envar[=value]] ...
デフォルト: none
コンテキスト: サーバ設定ファイル、バーチャルホスト、 ディレクトリ、.htaccess
上書き: FileInfo
ステータス: Base
モジュール: mod_setenvif
互換性: Apache 1.3 以上。Request_Protocol キーワードと 環境変数のマッチは 1.3.7 以降でのみ使用可能。.htaccess ファイルでの使用は 1.3.13 以降でのみサポート。

SetEnvIfNoCase は、意味的には SetEnvIf とほとんど同じです。違いは正規表現のマッチが大文字小文字を区別しないで 行なわれることです。例えば:

     SetEnvIfNoCase Host Apache\.Org site=apache
    

これは、HTTP リクエストの Host: ヘッダフィールドがあり、 その値が Apache.org, apache.org やその他の 大文字小文字の組み合わせであったときに、環境変数 site を "apache" に設定します。