説明: サーバーの領域にアクセスできるホストを制御します。 構文: すべてから許可|ホスト|env=環境変数 [ホスト|env=環境変数] ...
コンテキスト: ディレクトリ、.htaccess
適用範囲: 制限
ステータス: ベース
モジュール: mod_access
Allow ディレクティブは、どのホストがサーバーの領域にアクセスできるかに影響します。アクセスは、ホスト名、IP アドレス、IP アドレス範囲、またはその他の環境変数でキャプチャされたクライアント要求の特性を使用して制御できます。
このディレクティブの最初のパラメータは常に from です。後続のパラメータは 3 つの異なる形式を取ることができます。 「すべてから許可」が指定されている場合、すべてのホストがアクセスを許可され、以下で説明するように Deny および Order ディレクティブを構成する必要があります。 ホストまたはホスト グループの特定のサブセットのみがサーバーにアクセスできるようにするには、ホストを次のいずれかの形式で指定できます。
ドメイン名(一部)
例: apache.org からの許可
名前が指定された文字列と一致するか、その文字列で終わるホストへのアクセスを許可します。 完全な名前コンポーネントのみが一致するため、上記の例では foo.apache.org には一致しますが、fooapache.org には一致しません。 このような構成では、HostnameLookups ディレクティブが完全な IP アドレスを設定しているかどうかに関係なく、サーバーはクライアントの IP アドレスに対してドメイン名の逆引き検索操作を実行します。例: 10.1.2.3 から許可します。
1 つのホストの 1 つの IP アドレスからのアクセスを許可します。
IP アドレスの例: 10.1 から許可
IP アドレスの最初の 1 ~ 3 バイトは、サブネットの制限に使用されます。
ネットワーク/マスクのペアの例: 10.1.0.0/255.255.0.0 から許可
ネットワーク abcd とマスク wxyz。より正確なサブネット制限の場合。
Network/nnn エリア内ルーティングなしの指定例:10.1.0.0/16 から許可
マスクが nnn 上位バイトで構成されることを除いて、前のケースと同様です。
上記の最後の 3 つの例は、まったく同じホストのセットに一致することに注意してください。
IPv6 アドレスと IPv6 サブネットは次のように指定できます。
fe80::a00:20ff:fea7:ccea から許可
fe80::a00:20ff:fea7:ccea/10 から許可
Allow ディレクティブの 3 番目のパラメーター形式では、環境変数の拡張子によって指定されたサーバーへのアクセスが許可されます。 「Allow from env=env-variable」を指定すると、環境変数 env-variable が存在する場合にアクセス要求が許可されます。 mod_setenvif によって提供されるディレクティブを使用すると、サーバーはクライアントの要求に基づいて柔軟な方法で環境変数を設定する機能を提供します。 したがって、このディレクティブを使用すると、User-Agent (ブラウザ タイプ)、Referer、またはその他の HTTP リクエスト ヘッダー フィールドなどのフィールドに基づいてアクセスを許可できます。
例:
SetEnvIf ユーザー エージェント ^KnockKnock/2.0 let_me_in
<ディレクトリ/docroot>
注文拒否、許可
全員から拒否
env=let_me_in から許可する
</ディレクトリ>
この場合、KnockKnock/2.0 で始まるユーザー エージェント ID を送信するブラウザーはアクセスを許可されますが、他のすべてのブラウザーはブロックされます。
拒否命令の説明: サーバーへのアクセスを禁止するホストを制御します。 構文: Deny from all|host|env=env-variable [host|env=env-variable] ...
コンテキスト: ディレクトリ、.htaccess
適用範囲: 制限
ステータス: ベース
モジュール: mod_access
このディレクティブを使用すると、ホスト名、IP アドレス、または環境変数に基づいてサーバーへのアクセスを制限できます。 Deny コマンドのパラメータ設定は、Allow コマンドのパラメータ設定とまったく同じです。
順序命令の説明: デフォルトのアクセスステータスと、許可命令と拒否命令が評価される順序を制御します。
構文: 順序付け
デフォルト値: 注文拒否、許可
コンテキスト: ディレクトリ、.htaccess
適用範囲: 制限
ステータス: ベース
モジュール: mod_access
Order ディレクティブは、デフォルトのアクセス ステータスと、Allow ディレクティブと Deny ディレクティブが評価される順序を制御します。順序付けは次の例のいずれかです。
拒否、許可
拒否命令は許可命令の前に評価されます。デフォルトではすべてのアクセスが許可されます。 Deny ディレクティブに一致しないクライアント、またはAllow ディレクティブに一致するクライアントはサーバーへのアクセスを許可されます。
許可、拒否
Allow ディレクティブは、Deny ディレクティブより前に評価されます。デフォルトではすべてのアクセスが禁止されています。 Allow ディレクティブに一致しないクライアント、または Deny ディレクティブに一致するクライアントは、サーバーへのアクセスが禁止されます。
相互失敗
許可リストには表示され、拒否リストには表示されないホストのみがアクセスを許可されます。 この命令は、許可、拒否の命令と同じ効果を持ちますが、どの構成が含まれますか?
キーワードはカンマでのみ区切ることができ、キーワードの間にスペースを入れることはできません。すべての場合において、Allow および Deny の各ディレクティブ ステートメントが評価されることに注意してください。
以下の例では、apache.org ドメイン内のすべてのホストへのアクセスが許可されますが、他のホストへのアクセスは拒否されます。
注文拒否、許可
全員から拒否
apache.org から許可する
次の例では、アクセスが拒否される foo.apache.org サブドメインに含まれるホストを除く、apache.org ドメイン内のすべてのホストへのアクセスが許可されます。 デフォルト状態ではサーバーへのアクセスが拒否されているため、apache.org ドメインにないホストはすべてアクセスを許可されません。
注文の許可、拒否
apache.org から許可する
foo.apache.org からの拒否
一方、前の例の Order ディレクティブを Deny,Allow に変更すると、すべてのホストからのアクセスが許可されます。これは、設定ファイル内のディレクティブの実際の順序に関係なく、apache.org からの許可ディレクティブが最後に評価され、foo.apache.org からの以前の拒否が上書きされるためです。デフォルトのステータスが許可に変更されているため、apache.org ドメインにないすべてのホストもアクセスを許可されます。
許可および拒否命令が伴っていない場合でも、オーダー命令の存在は、デフォルトのアクセス状態に影響を与えるため、サーバーの特定の部分へのアクセスに影響します。例えば、
<ディレクトリ/www>
注文の許可、拒否
</ディレクトリ>
これにより、デフォルトのステータスが拒否に設定されるため、/www ディレクトリへのすべてのアクセスが無効になります。
Order ディレクティブは、サーバー構成の各セグメント内でのみアクセス命令の処理を制御します。 これは、たとえば、<Location> セクションにある許可または拒否ディレクティブは、Order ディレクティブの設定に関係なく、常に <Directory> セクションまたは .htaccess ファイルにある許可または拒否ディレクティブの後に評価されることを意味します。なぜ。構成セクションの結合の詳細については、「ディレクトリ、場所、およびファイル セクションの仕組み」を参照してください。