Apache-2.2

在不存在的子域中找不到錯誤文件 404

  • September 14, 2012

我試圖讓 apache 伺服器為無效的子域發出自定義 404 錯誤。以下是httpd配置的相關部分:

Alias /err/ "/var/www/error/"
ErrorDocument 404 /err/HTTP_NOT_FOUND.html.var

<VirtualHost *:80> # the default virtual host
 ServerName site_not_found
 Redirect 404 /
</VirtualHost>

<VirtualHost *:80>
 ServerName example.com
 ServerAlias ??.example.com
</VirtualHost>

我得到的是:

未找到

在此伺服器上找不到請求的 URL /。

此外,在嘗試使用 ErrorDocument 處理請求時遇到 404 Not Found 錯誤。

我不明白為什麼 URL 會non-existent-subdomain.example.com產生 404 錯誤而沒有如上所示的自定義錯誤,而 URL 會eg.example.com/non-existent-file產生完整的自定義 404 錯誤。

有人可以就此提出建議。謝謝。

有趣的; 該語法僅記錄為與410狀態程式碼一起使用。

在任何情況下,使用Redirect 404 /解釋無法提供自定義錯誤頁面 - 它也受到影響Redirect

404‘ing vhost 自己的空DocumentRoot是一種選擇,因為它可以“正常”404地請求請求,而無需將其全域應用於 vhost 中的所有內容(包括錯誤頁面)。

或者..如果Redirect適用於404,也許RedirectMatch也可以?

RedirectMatch 404 ^/(?!err)

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