簡體   English   中英

如果網頁不存在,我應該返回哪些標題?

[英]If a web page doesn't exist, what headers should I return?

當您的網站上不存在網頁時會發生什么? 如果我在.htaccess中設置了自定義錯誤頁面,我會獲得302臨時重定向到我的404頁面(我發送404標題)。 它應該如何工作? 或者我應該將301永久重定向到錯誤頁面? 我正在使用php和Apache。

如果它從未存在過,則應發送404 Not Found

如果以前存在但不再存在,則應發送410 Gone

設置服務器以直接發送錯誤響應。

您不應該重定向到錯誤頁面。 這基本上意味着談話將會:

  • 瀏覽器:我可以擁有/ foo嗎?
  • 服務器:您可以在/ bar找到/ foo!
  • 瀏覽器:我可以/吧嗎?
  • 服務器:我找不到/吧。

誘餌和開關永遠不會好。

不存在的頁面沒有“暫時移動”(301)或“永久移動”(302)到關於不存在的文件的頁面,它不存在。 要發送的正確標頭是404,而不是其他任何標頭。

不要在任何地方重定向,而是在請求的URL上提供“找不到文件”頁面內容。

如果您有一個靜態錯誤頁面,比如說404.html,那么apache會在找不到頁面時顯示,並且您需要能夠為動態頁面提供404頁面,您可以通過發送404標題來實現PHP並提供錯誤頁面:

<?php
header("HTTP/1.0 404 Not Found");
readfile("404.html");
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM