Apache-2.2
我可以讓 Apache ErrorDocument 返回 404 而不是 301?
在我的
.htaccess
我有ErrorDocument 404 http://foo.com/404.html
它有效,因為我從任何未找到文件的錯誤中恢復並改為顯示 404 頁面,但它的工作方式是使用 301 將錯誤的 URI 重定向到我的
404.html
頁面。這很糟糕,因為搜尋引擎和爬蟲最終不會看到 404 程式碼,而是 301 程式碼,並且不會從索引中清除已刪除的頁面。
我可以讓 Apache 在文件未找到錯誤時提供此 404 頁面的內容,但仍返回 404 程式碼而不是 301?
您應該嘗試使用絕對或相對路徑,而不是 URL
我的 apache2.conf :
ErrorDocument 403 /error/403.html ErrorDocument 404 /error/404.html ErrorDocument 500 /error/500.html
不要指向外部網址
語法是,
ErrorDocument <3-digit-code> <action>
行動可能在哪裡,
- 要顯示的文本。用引號 (") 將文本括起來。
- 要重定向到的外部 URL。
- 要重定向到的本地 URL。
指向外部 url 將導致實際重定向,而使用本地 url 是內部的。
因此,要呈現文件的內容,只需指向它,例如:
ErrorDocument 404 /404.html
為工作使用正確的狀態碼
這很糟糕,因為搜尋引擎和爬蟲最終不會看到 404 程式碼,而是 301 程式碼,並且不會從索引中清除已刪除的頁面。
如果頁面曾經存在而現在不存在,則正確的響應程式碼是410 Gone。410 是說“嘿,那不存在”的程式碼,而 404 僅表示在反复嘗試訪問現在不存在的頁面之後。