Apache-2.2
在不存在的子域中找不到錯誤文件 404
我試圖讓 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)