2

私は検索し、たくさん読んだが、それでも私の目標を達成する方法を見つけることができなかった。今では不可能だとさえ思います。それは...ですか?

404エラーを適切に処理したいのでErrorDocument 404 /404.php、.htaccessファイルにあります。また、検索エンジンに正しいヘッダーを送信して、header("HTTP/1.1 404 Not Found")そのページを忘れさせたいです。また/index.php?code=404、訪問者をリダイレクトして、訪問者にそのことを通知できるようにします。探していたものは利用できませんが、それでも彼をサイトに留めておきます。

これで、ユーザーをリダイレクトするまではすべて問題ないようです。サーバーは302メッセージを送信します。これにより、以前の404ヘッダーが上書きされるため、ユーザーを目的の場所に送信することはできますが、それでもわかりません。アドレスが間違っている検索ボット。

ヘッダー行の後にを追加しinclude("index.php?code=404")ても機能しない場合、サーバーはファイルが存在しないことを示します。

私は何をすべきか?

4

3 に答える 3

5

次のようなものを試してください。

<?php

    header("HTTP/1.0 404 Not Found");

    echo '<html>
            <head>
                <meta http-equiv="Refresh" content="0;url=http://www.mysite.com/index.php?code=404" />
            </head><body></body>
          </html>';


?>

リダイレクトを使用しているのはmeta、そうしないと、ヘッダーがすでに送信されているというエラーが発生するためです。

Fiddlerを使用してローカルホストでこれをテストし、適切な404応答を取得した後、別のページに正しくリダイレ​​クトされました。

于 2012-07-16T10:03:48.797 に答える
5

もう1つの提案は、404を処理するように.htaccessを変更することをお勧めします。

次のようなものを追加します:

ErrorDocument 404 /404.php

あなたの.htaccessにあなたのために物事を非常にうまく処理します。

404エラーテンプレートはどこにでも配置できます。たとえば、すべてのエラーメッセージを「errors」というフォルダに配置できます。

ErrorDocument 404 /errors/404.php

もちろん、物事やその他のエラーメッセージをうまく処理します。

于 2013-07-14T15:14:06.073 に答える
0

include("index.php")コードパラメータなしで404ページにを追加できますか。次に、index.php内に、現在のページのURLをチェックするセクションを含めます。したがって、ページのURLにが含まれている404.html場合は、エラーメッセージを含めてください。そうでない場合は、メインインデックスを通常どおりに表示してください。

于 2012-07-16T10:02:26.880 に答える