Apache-2.2

如何拒絕某個 IP 地址,但仍顯示 Apache2 的自定義錯誤頁面?

  • May 12, 2014

我在我的網路根目錄/home/www/中有一個.htaccess禁止 IP 地址的文件:

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 處理請求時遇到 403 Forbidden 錯誤。

但是,如果我瀏覽到 /errors/500.htm 我可以在瀏覽器中看到該頁面,所以我知道子目錄.htaccess似乎允許載入這些文件。

我究竟做錯了什麼?如何拒絕某個 IP 地址,但仍顯示 Apache2 的自定義錯誤頁面?

簡單地將來自被阻止 IP 的人重定向到錯誤頁面會容易得多:

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

引用自:https://serverfault.com/questions/444380