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 時,我得到內置的“Forbidden ...你沒有權限”訪問此伺服器上的/x”頁面。

相關內容