PHP 410 重定向
我正在使用 WordPress,我会将所有未经授权的用户重定向到主页。
为了做到这一点,我在头文件中放置了以下 PHP 代码(在文件的开头):
if (bp_current_component() != ""
&& bp_current_component() != "event"
&& !is_user_logged_in()
&& !isset($_COOKIE[affiplus])
&& !isset($_GET[affid]))
{
header( "HTTP/1.1 410 Gone" );
header( "Location: ".get_option('siteurl')."/home/");
}
不幸的是,返回的 HTTP 错误代码始终是 302(永久移动),而不是我想要的 410。为什么?
I'm using WordPress and I would to redirect all unauthorized users to the homepage.
In order to do so in the header file I put (at the begin of the file) the following PHP code:
if (bp_current_component() != ""
&& bp_current_component() != "event"
&& !is_user_logged_in()
&& !isset($_COOKIE[affiplus])
&& !isset($_GET[affid]))
{
header( "HTTP/1.1 410 Gone" );
header( "Location: ".get_option('siteurl')."/home/");
}
Unfortunately the HTTP error code returned is always 302 (Moved permanently) and not 410 as I want. Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
或者,您可以使用刷新标头,这样它仍然会显示 410 响应,但也会重定向。
发送 410(消失)或(曾经是一个页面,但现在消失)的主要原因是搜索引擎不会为该页面建立索引。
Alternately you could use the refresh header this way it will still show a 410 response but also redirect.
The main reasoning for sending a 410 (Gone) or (Was a page but now its Gone) would be that search engines dont index the page.
您只能发送一个响应状态代码。因此,您可以发送错误响应 (4xx) 或重定向响应 (3xx)。无论如何,当未经授权的用户尝试访问资源时发送 410 标头都是不正确的。
我认为只执行 302 就足够了。
You can only send one response status code. So you can either send an error response (4xx) or a redirection response (3xx). Sending a 410 header when an unauthorised user tries to access a resource would be incorrect anyway.
I think just performing a 302 is more than adequate.
怎么样
文档 提供了深入的解释。
How about
The docs provide an in-depth explanation.