2

リダイレクトを実行するための次のコードがあります。my$includeFileが存在しない場合、404 ページにリダイレクトされます。これは私のスニペットですindex.php

if ( !file_exists($includeFile) )
     Header( "HTTP/1.1 404 Page Not Found" );
     Header( "Location: http://legascy.com/404_error/");

しかしhttp://legascy.com/404_error/、404 ではなく HTTP ステータス 200 OK を示しています。

これを解決するには?

4

2 に答える 2

1

リダイレクトするページではなく、「404_error」ページに 404 のヘッダー関数を配置する必要があります。これは、ブラウザーがデフォルトの 200 ステータス コードを持つ 404_error に送信されるためです。

if ( !file_exists($includeFile) ) {
     header("Location: http://legascy.com/404_error/");
}

そして 404_error/index.php:

header("HTTP/1.1 404 Page Not Found");
于 2013-01-25T08:02:03.693 に答える
0

404 エラー コードを送信するための以前のヘッダーは Location ヘッダーによって破棄され、ブラウザーはユーザーを新しいページに移動します。リダイレクト先のページは利用可能であるため、常に 200 と表示されます。

于 2013-01-25T08:02:15.697 に答える