Apache-2.2
自定義 403 錯誤頁面未顯示
我想限制對某些文件夾(例如,包括、xml 和日誌)的訪問,因此我給了它們 700 個權限,並為它們中的所有文件提供了 600 個權限。首先,這是限制訪問的正確方法嗎?
我的根目錄中有一個 .htaccess 文件,用於處理重寫和錯誤文件。根目錄中有兩個頁面 - 403.php 和 404.php - 用於 403 和 404 錯誤。我將這些規則添加到我的 .htaccess 文件中:
ErrorDocument 404 /404.php ErrorDocument 403 /403.php
現在,404 頁面工作得很好。當我嘗試訪問“包含”文件夾時,403 頁面不顯示 - 我得到了標準的 apache 403 錯誤頁面,說“此外,在嘗試使用 ErrorDocument 處理請求時遇到了 404 Not Found 錯誤。”
但是,當我嘗試在瀏覽器中訪問 .htaccess 文件(在 Web 根目錄中)時,我得到了我的自定義 403 錯誤頁面。為什麼會這樣?
include/ 文件夾中是否有 .htaccess 文件?它有
ErrorDocument 403
指令嗎?如果那個覆蓋了父級,那麼這可能會導致您描述的問題。
嘗試將
ErrorDocument
指令放在您的 httpd.conf 或 vhost 文件中。您在這些請求的訪問和錯誤日誌中看到了什麼?
還值得三重檢查 403 行肯定說
ErrorDocument 403 /403.php
而不是ErrorDocument 403 403.php
. 那個小錯字會導致您描述的所有症狀。聊天后更新:
最終的解決方案是讓 Apache 使用者可以讀取包含目錄並將其添加到 .htaccess 中:
<Location /includes> Order Deny,Allow Deny from all </Location>