代码之家  ›  专栏  ›  技术社区  ›  animuson

如何确保客户端获得404错误状态?

  •  0
  • animuson  · 技术社区  · 14 年前

    这实际上是一个由两部分组成的问题。我的服务器设置为将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页,而该页技术上存在。还有其他更好的选择吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   BalusC    14 年前

    如果 4nn / 5nn 错误页的实际HTTP状态头为 200 OK ,然后它将被索引。

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

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

    您可以使用诸如 Firebug Web Developer Toolbar .