PHPページからHTTPエラードキュメントを表示しようとしていますが、検索エンジンのクローラーが混乱するのを防ぎ、一時的な問題が発生した場合にページを再読み込みできるように、元のURLをアドレスバーに残したいと思います。
PHPでリダイレクト関数を作成しました。これは次のようになります。
public static function Redirect($url, $code = '303 See Other') {
header('HTTP/1.1 ' . $code);
header('Location: ' . $url);
exit(0);
}
403 Forbiddenなどのエラードキュメントを表示したい場合は、次のようにしますRedirection::Redirect('/errordocs/403.php', '403 Forbidden');
。これで問題なく動作します。
私が言ったように、ユーザーのURLは/errordocs/403.php
私が避けたいと思うように変更されます。
私がやろうとしたのはheader('Location: ' . $url);
、HTTPコードが4xxまたは5xxの場合にその行を削除することでした。関連するエラーページを指すように.htaccessを設定しているので、これによってApacheが正しいドキュメントを表示するようになることを期待していました(これはそのままで正常に機能します)。
私が実際にこれを行うことで得たのは、私のかなりカスタムなエラードキュメントではなく、問題が発生したときの標準のGoogleChromeメッセージでした。
簡単なコンセンサスで、これを今行うための最良の方法は何ですか?リダイレクトする代わりにページをエコーさせる?