pAk*_*Y88 0 php redirect http http-status-code-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/");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,返回的HTTP错误代码总是302(永久移动)而不是我想要的410.为什么?
Law*_*one 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;
}
?>
Run Code Online (Sandbox Code Playgroud)
发送410(Gone)或(是一个页面但现在已经过去)的主要原因是搜索引擎不会将页面编入索引.
您只能发送一个响应状态代码.因此,您可以发送错误响应(4xx)或重定向响应(3xx).当未经授权的用户尝试访问资源时发送410标头无论如何都是不正确的.
我认为只执行302就足够了.
| 归档时间: |
|
| 查看次数: |
14460 次 |
| 最近记录: |