【发布时间】:2013-01-10 12:30:55
【问题描述】:
我有一个 PHP 站点,它使用 404 页面来处理漂亮的 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
这样,它对人类/浏览器工作正常,但 Google 显然收到 404 状态并停止。这里是an example。
它托管在 Dreamhost 专用 Linux 服务器上,运行 PHP 5.3.x 和 FastCGI。
【问题讨论】:
-
为什么要让搜索引擎记录
Not Found的页面?如果用户点击链接后会跳转到 404,这会给用户带来不便。 -
@diggersworld 这不是他在做什么,他在 常规页面 使用 404 错误文档。这是相当...非正统的。
-
@eis 它是不寻常,但我在做科学!我有一个假设,用实验测试它,然后得出一个结论。基本上,404 页面是一个网关 PHP 脚本,它检查有效的缓存页面,失败时尝试基于 url 构建页面,失败时返回 404 页面/状态。除了这个谷歌怪癖之外,它的工作非常出色......比旧的 htaccess 重定向方式快得多。