Url rewriting 处理404';具有可以';“不必”+;1';D

Url rewriting 处理404';具有可以';“不必”+;1';D,url-rewriting,http-status-code-404,google-plus-one,Url Rewriting,Http Status Code 404,Google Plus One,我使用的是.htaccess自定义错误页面“error.php”。问题是,它所做的只是重定向它们 我想让我的404在地址栏中显示请求的URL,就好像用户从未被重定向一样 以下是一些模型示例: 这些页面是否只是使用了一个URL重写器,实际上类似于“domain.com/index.php?page=22222”?如果是这样的话,他们是否只是打印文本而不指明它是404页,而不以某种方式将其标记为错误页 他们必须在标题中发送一些内容。我的+1按钮有一个Chrome扩展,当我转到列出的页面时,它会给

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

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

以下是一些模型示例:

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

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


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

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

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


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

那些页面是404,我想你不能“+1”那些页面。我的error.php可以是+1'd,所以我遗漏了一些东西……如果你使用Chrome,你就可以拉出开发工具,对吗?在“网络”下,您可以检查响应代码。在这种情况下是404。当我尝试将预处理器添加到自定义ErrorDocument时,Chrome认为我的页面处于重定向循环中。当客户端发送无效的$\u GET stuff时,我将使用URL重写让我的PHP页面发送标题和“错误”内容。。。。这可能就是我最初想要做的。谢谢,我不知道你可以将页面内容和404标题一起发送,我以为浏览器会在收到404标题后中止加载。
header('HTTP/1.1 418 I'm a Teapot');