我正在使用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。为什么呢?
答案 0 :(得分:10)
或者你可以这样使用刷新标题,它仍然会显示410响应,但也会重定向。
<?php
if (bp_current_component() != "" &&
bp_current_component() != "event" &&
!is_user_logged_in() &&
!isset($_COOKIE['affiplus']) &&
!isset($_GET['affid']))
{
header($_SERVER["SERVER_PROTOCOL"]." 410 Gone");
header("Refresh: 0; url=".get_option('siteurl')."/home/");
exit;
}
?>
发送410(Gone)或(是一个页面但现在 Gone )的主要原因是搜索引擎不会对页面编制索引。
答案 1 :(得分:8)
您只能发送一个响应状态代码。因此,您可以发送错误响应(4xx)或重定向响应(3xx)。当未经授权的用户尝试访问资源时发送410标头仍然是不正确的。
我认为只执行302就足够了。
答案 2 :(得分:-1)