.htaccess ファイルで使用されます。クライアントのホスト名、IP
アドレスや、環境変数などのリクエストの特徴に基づいて
アクセス制御を行なうことができます。
ホストによるアクセス制限とパスワードによる認証を、
同時に組み合わせて使うこともできます。
この場合、その二つの制限の関係を指定するために
一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド
(GET, PUT, POST など)
に適用されます。そして、ほとんどの場合これが望ましい動作です。
しかし、
このディレクティブの最初の引数は常に from です。
それに続く引数は三つの違った形式があります。Allow from
all が指定されていれば、すべてのホストにアクセスを許可し、
アクセス制限は下で説明されているように、
この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。
各部分が完全に合うものだけに適用されますので、上の例は
foo.apache.org にはマッチしますが、
fooapache.org にはマッチしません。
この設定をすると、Apache は
アクセスを許可する IP アドレスです。
サブネットの制限用の、IP アドレスの最初の一つから三つまでのバイトです。
ネットワーク a.b.c.d とネットマスク w.x.y.z です。 より細粒度のサブネット制限用です。
ネットマスクが nnn の上位ビットが 1 となっているものからなること以外は前のものと同じです。
注: 最後の三つの例はまったく同じホストに合います。
IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:
Allow from env=env-variable
が指定されていると、環境変数 env-variable
が存在した場合にリクエストはアクセスを許可されます。
Allow from env=!env-variable
が指定されていると、環境変数 env-variable
が存在しない場合にアクセス許可されます。
サーバは User-Agent (ブラウザの種類)、Referer
や他の HTTP リクエストのヘッダフィールドなどに基づいて
アクセス許可をするために使うことができます。
この場合、user-agent の文字列が KnockKnock/2.0
で始まるブラウザのみがアクセスが許可され、
他のものはアクセスが拒否されます。
このディレクティブはホスト名、IP
アドレス、環境変数に基づいてサーバへのアクセスを制限します。
全ての
Order 設定は以下のどれかです。
Allow,DenyDeny,AllowMutual-failureOrder Allow,Deny と全く同じ効果を持ち、
そのため非推奨となっています。
キーワードの間に置けるのはコンマだけです。 間に空白があってはいけません。
| マッチ | Allow,Deny 時の結果 | Deny,Allow 時の結果 |
|---|---|---|
| Allow だけにマッチ | 許可 | 許可 |
| Deny だけにマッチ | 拒否 | 拒否 |
| どちらにもマッチしない | 2番目のディレクティブがデフォルト: 拒否 | 2番目のディレクティブがデフォルト: 許可 |
| Allow と Deny 両方にマッチ | 最後にマッチしたほう: 拒否 | 最後にマッチしたほう: 許可 |
以下の例では、apache.org ドメインのすべてのホストはアクセスを許可されます。 他のすべてのホストはアクセスを拒否されます。
次の例では、foo.apache.org サブドメインにあるホスト以外の、
apache.org ドメインのすべてのホストがアクセスを許可されます。
apache.org
ドメインでないホストは、デフォルトの状態が
一方、上の例の Deny,Allow
に変わっていれば、すべのホストにアクセスが許可されます。
これは、設定ファイル中の実際の順番に関わらず、
Allow from apache.org が最後に評価されて、
Deny from foo.apache.org を上書きするからです。
apache.org
ドメインにないホストも、デフォルトの状態が
はデフォルトのアクセス状態が
/www ディレクトリへのすべてのアクセスを拒否します。
.htaccess ファイルの
All か Any
です。このディレクティブはある場所へのアクセスがユーザ名/パスワード
とクライアントのホストのアドレスで制限されているときにのみ
役立ちます。デフォルトの動作 (All) はクライアントがアドレスによる
アクセス制限を満たし、かつ正しいユーザ名とパスワードを入力することを
要求します。Any では、クライアントはホストの制限を満たすか、
正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。
これは、ある場所をパスワードで保護するけれど、特定のアドレスからの
クライアントにはパスワードの入力を要求せずにアクセスを許可する、
というようなときに使用できます。
例えば、同じネットワーク上にいる人にはウェブサイトのある部分について 無制限のアクセスを許したいけれど、外のネットワークの人には パスワードを提供させるようにするためには、次のような設定をすることが できます:
バージョン 2.0.51 からは