【问题标题】:How do you make sure the client gets the 404 error status?您如何确保客户端获得 404 错误状态?
【发布时间】:2010-07-09 18:29:05
【问题描述】:

这实际上是一个由两部分组成的问题。我的服务器设置为将 Apache 本身内的所有 404 错误重定向到 index.php?404。这是否仍然向客户端发送 404 状态消息以告诉他们该页面未找到,然后 然后 显示我自定义的 404 错误页面?因为我在其他页面中也有进程。虽然页面本身可能存在,但如果用户名(例如)无效或不存在,它只会直接从文件中显示相同的 404 页面(包括 404 页面并死掉)。我是否应该使用 PHP 发送一个额外的 404 状态来告诉客户端该页面不存在,如果是,我该怎么做?

编辑:
进一步解释上述问题:
admin.example.com -> admin 是一个有效的用户名,将显示页面
madeup.example.com -> madeup 是无效的用户名,将输出 404 页面
*.example.com 重定向到 index.php 进行处理,因此搜索引擎等会认为该页面存在,因为它已被处理然后我只是输出了一个 404 页面并杀死了脚本...

我最近遇到了一个问题,谷歌缓存了一个 404 错误的页面,所以我试图弄清楚如何防止搜索引擎等在页面技术存在时发送 404 页面时缓存或读取页面。还有其他更好的选择吗?

【问题讨论】:

    标签: php apache caching http-status-code-404


    【解决方案1】:

    如果4nn/5nn 错误页面的实际HTTP 状态标头为200 OK,则将其编入索引。

    因此,您需要确保它与正确的 HTTP 状态标头一起发送。此错误通常是由向错误页面发送 redirect 而不是转发/包含引起的。重定向基本上指示客户端向服务器发出全新的请求,这将始终导致200 OK。您想以编程方式修改/设置错误页面内的标题,例如

    header('HTTP/1.1 404 Not Found');
    

    您可以使用FirebugWeb Developer Toolbar 等工具确定实际的HTTP 状态代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2013-06-01
      • 2017-03-09
      • 2013-10-07
      • 1970-01-01
      • 2015-05-28
      • 2023-01-25
      • 2012-04-24
      相关资源
      最近更新 更多