0

私は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ではありません。なんで?

4

3 に答える 3

11

または、この方法で更新ヘッダーを使用すると、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)を送信する主な理由は、検索エンジンがページのインデックスを作成しないことです。

于 2012-11-24T19:09:35.500 に答える
8

送信できる応答ステータスコードは1つだけです。したがって、エラー応答(4xx)またはリダイレクト応答(3xx)のいずれかを送信できます。許可されていないユーザーがリソースにアクセスしようとしたときに410ヘッダーを送信すると、とにかく正しくありません。

302を実行するだけで十分だと思います。

于 2011-10-25T14:55:49.993 に答える
-2

どうですか

header( "Location: ".get_option('siteurl')."/home/", true, 410);

ドキュメントは詳細な説明を提供します。

于 2011-10-25T14:56:14.980 に答える