如何在PHP中覆盖Apache 404状态?

时间:2013-01-26 19:09:37

标签: php linux apache http

我有一个使用404页面设置的PHP站点来处理漂亮的URL和一些缓存。这非常好用,并且比重载下的usual htaccess redirect rules更快。

ErrorDocument 404 /damncache/index.php

问题是Apache将HTTP状态设置为404,我似乎无法覆盖它。因此,当Google为网站编制索引时,所有这些网页都没有编入索引(根据Google网站管理员工具)。

以下是我目前试图覆盖它的方式:

header($_SERVER['SERVER_PROTOCOL'] . " 200 OK");
header("Status: 200 OK"); // for fast cgi

有了它,它适用于人类/浏览器,但谷歌显然收到404状态并停止。这是an example

它托管在运行带有FastCGI的PHP 5.3.x的Dreamhost专用Linux服务器上。

1 个答案:

答案 0 :(得分:1)

http://web-sniffer.net/报告了一个200 OK标题 - 您是否给了Google足够的时间来重新抓取这些网页?

如果它已经从索引中删除了它们,您可能需要再次提交它们 - 它可以通过抓取其他链接来获取它们,但无论如何,网站管理员工具中的站点地图可能是个好主意。