繁体   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