如果网页不存在,我应该返回哪些标题?

时间:2010-11-22 21:23:06

标签: php http

当您的网站上不存在某个网页时会发生什么?如果我在.htaccess中设置了自定义错误页面,我会获得302临时重定向到我的404页面(我发送404标题)。它应该如何工作?或者我应该将301永久重定向到错误页面?我正在使用php和Apache。

3 个答案:

答案 0 :(得分:7)

如果它从未存在过,您应该发送404 Not Found

如果以前存在但不再存在,则应发送410 Gone

设置服务器以直接发送错误响应。

您不应该重定向到错误页面。这基本上意味着谈话将会进行:

  • 浏览器:我可以拥有/ foo吗?
  • 服务器:你可以在/ bar找到/ foo!
  • 浏览器:我可以/ bar吗?
  • 服务器:我找不到/吧。

诱饵和开关绝对不错。

答案 1 :(得分:5)

不存在的页面没有“暂时移动”(301)或“永久移动”(302)到关于文件不存在的页面,它不存在。要发送的正确标头是404,而不是其他任何内容。

请勿在任何地方重定向,而是在请求的网址上提供“未找到文件”页面内容。

答案 2 :(得分:1)

如果您有一个静态错误页面,例如404.html,那么apache显示何时找不到页面,并且您需要能够为动态页面提供404页面,您可以通过发送来自PHP的404标头并提供错误页面:

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