Dot-Htaccess

Apache ErrorLog:不能在 401 ErrorDocument 指令中使用完整的 URL — 忽略

  • August 13, 2020

我使用 Apache 上的 .htaccess 文件來顯示自定義錯誤文件。這一切都很好。

但是我仍然在日誌中看到很多這樣的錯誤:

[Thu Aug 13 10:38:31 2020] [notice] [client AH00113: /home/www/.htaccess:6 cannot use a full URL in a 401 ErrorDocument directive --- ignoring!

我的 .htacess 的第 6 行看起來直截了當:

ErrorDocument 401 http://error.foo.bar/401.html

為什麼不能使用 401 ErrorDocument 指令中的完整 URL?錯誤或功能?

您只能使用本地 URL 路徑來響應程式碼 401。這是因為

當您指定一個指向遠端 URL 的 ErrorDocument(即前面帶有 http 等方法的任何內容)時,Apache HTTP Server 將向客戶端發送重定向,告訴它在哪裡可以找到該文件,即使該文件最終在同一台伺服器上。這有幾個含義,最重要的是客戶端不會收到原始錯誤狀態程式碼,而是會收到重定向狀態程式碼。這反過來又會混淆網路機器人和其他嘗試使用狀態程式碼來確定 URL 是否有效的客戶端。此外,如果您在 ErrorDocument 401 中使用遠端 URL,客戶端將不知道提示使用者輸入密碼,因為它不會收到 401 狀態程式碼。因此,如果您使用 ErrorDocument 401 指令,則它必須引用本地文件。

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