.htaccessでIPをブロックできない
置いた
Require not ip 192.168.20.218
機能しますが、単一のIPをブロックするのではなく、ネットワーク全体をブロックします。
誰かがこの問題を解決できますか?
Ubuntu 14.04.3 LTSを使用してApache 2.4で実行しています
PDATE:シナリオはこのようなもので、IPを使用しています192.168.20.218
私のコンピューターで、このIPアドレスをブロックするテストを実行しようとしています。
<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>
これは私のアクセスをブロックするはずですが、代わりにページへのアクセスを許可しています。 Require all granted
ネットワーク全体をブロックします。
アクセスを許可するために、negatedディレクティブを単独で使用することはできません。 ドキュメント で述べたように:
Require
ディレクティブの結果は、not
オプションを使用して無効にすることができます。他の否定された承認ディレクティブと同様に<RequireNone>
、Require
ディレクティブが否定された場合、失敗するか、中立的な結果を返すだけなので、独立してリクエストを承認することはできません 。
代わりに、次のようなことを行う必要があります。
<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>
したがって、全員を許可し、特定のIPアドレスを除外します。
<RequireAll>
コンテナは、その名前が示すように、含まれているすべてのディレクティブを満たす必要があります。
私はこの問題を抱えていました。 nginxリバースプロキシを設定していたのを忘れていました。 Apacheに入るIPは、nginxからのリバースプロキシIPでした。代わりに、真のIPを含むリバースプロキシにカスタムヘッダーを設定し、IPをチェックする代わりに.htaccessでこのヘッダーをチェックする必要がありました。