web-dev-qa-db-ja.com

特定のIPアドレスを拒否しても、Apache2でカスタムエラーページを表示するにはどうすればよいですか?

私のウェブルートには/home/www/があります。IPアドレスを禁止するための.htaccessファイルがあります。

order allow,deny
deny from 1.2.3.4
deny from 2.3.4.5
allow from all

ErrorDocument 500 /errors/500.htm
ErrorDocument 403 /errors/403.htm

私はまた、エラーステートメントでこの方法を試しました:

ErrorDocument 500 /home/www/errors/500.htm
ErrorDocument 403 /home/www/errors/403.htm

次のファイルを含むエラーディレクトリ/home/www/errorsを作成しました。

403.htm
500.htm
.htaccess

エラーディレクトリ.htaccessでルールを設定しました。

order deny,allow
allow from all

IPをルートの.htaccessファイルに入れると、サイトを閲覧できません。エラーが発生します:

禁止-このサーバーにアクセスする/アクセスする権限がありません。

さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに、403Forbiddenエラーが発生しました。

ただし、/ errors/500.htmを参照すると、ブラウザにそのページが表示されるので、サブディレクトリ.htaccessでこれらのファイルの読み込みが許可されているようです。

私は何が間違っているのですか?特定のIPアドレスを拒否しても、Apache2でカスタムエラーページを表示するにはどうすればよいですか?

2
cwd

ブロックされたIPからのユーザーをエラーページにリダイレクトする方がはるかに簡単です。

RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule .* /CustomError.html [R=403]
1
Chris S