Apache 2.0 ErrorDocument ディレクティブはルートディレクトリ自体を取得するときには機能しません

Apache 2.0 ErrorDocument ディレクティブはルートディレクトリ自体を取得するときには機能しません

私は Red Hat 4.1.2 上で Apache 2.0 を使用しているサイトを担当しています。

サイトのルート ディレクトリにある .htaccess ファイルに次の行を追加して、カスタム エラー ページを表示するようにサイトを構成しました。

ErrorDocument 403 /403.html

テストのために、サイト アプリケーションで自分の IP アドレスをブロックしました。これにより、.htaccess ファイルに次のような内容が表示されます (簡潔にするためにリストを編集し、IP を変更しました)。

SetEnvIfNoCase REMOTE_ADDR "^(0\.0\.0\.1|0\.0\.0\.2|0\.0\.0\.3).*" BadIP
deny from env=BadIP

「悪い」IPからサイトにアクセスしようとすると、特定のページ(たとえば、http://example.com/index.html)。

しかし、ルートディレクトリだけを取得しようとすると(例えばhttp://example.com)を実行すると、代わりに Apache テスト ページが表示されます。

カスタム エラー ページでサイトのルート ディレクトリを動作させる方法はありますか?

編集: 混乱を招いてしまったかもしれません。明確にするために:

  • ルートURLを取得しようとすると、ルートページはない提供されました。表示されるのは、「このページが読める場合、このサイトにインストールされている Apache HTTP サーバーが正常に動作していることを意味します。」というページです。つまり、予想どおりブロックされていますが、403 エラー ページは表示されません。
  • ルートの下に何かを取得しようとすると、カスタム403.htmlページが表示されます

アップデート:

私はこれを最近のApacheバージョン(2.2.25)で試しました。また、それなしErrorDocumentディレクティブやSetEnvの記述。.htaccessファイルにはのみこれらの3行:

order allow,deny
allow from all
deny from 0.0.0.0

ここで、0.0.0.0 は実際の IP アドレスに置き換えられます。

結果は同じです。example.com を取得すると、Apache の「これを読むことができる場合」テスト ページが表示され、example.com/x を取得すると、組み込みの「禁止...このサーバーの /x にアクセスする権限がありません」ページが表示されます。

関連情報