1

我正在使用 .htaccess 自定义错误页面“error.php”。问题是,它所做的只是重定向它们。

我希望我的 404 在地址栏中显示请求的 URL,就好像用户从未被重定向一样。

以下是一些模型示例:

http://us.battle.net/wow/en/22222222222222222222

http://en.wikipedia.org/wiki/222222222222222222222

这些页面是否只是使用实际上类似于 "domain.com/index.php?page=2222222222222222222222" 的 URL 重写器?如果是这样,他们是否只是打印出文本而不表明它是 404 页面而不以某种方式将其标记为错误页面?

他们必须在标题中发送一些东西。我有一个用于 +1 按钮的 Chrome 扩展程序,当我转到列出的页面时,它给了我一个错误,说“不能 +1 这个页面”。

有谁知道这里使用的是什么“标志”?

4

1 回答 1

0

是的,您可以使用确定页面不存在的预处理器发送 HTTP 状态代码。例如,在 PHP 中你会使用这个:

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

这将发送 404 标头以及您要显示的自定义 404 页面。您可以使用任何 HTTP 状态代码来执行此操作,甚至可以自己编写(尽管它们可能不会被识别)。

header('HTTP/1.1 418 I'm a Teapot');

如果您ErrorDocument在 .htaccess 文件中使用 Apache 的定义,只要您不修改已定义页面的标题(例如运行 PHP 文件)或重定向到新页面,它就应该保留错误代码。使用纯文本和/或(可能)HTML 文件将保留 404 标头。我从来没有用 HTML 文件测试过它。

于 2011-11-11T01:29:06.457 回答