4

header() 関数内で設定されたエラー コードから、 Apacheサーバーをデフォルトのエラー ページに自動リダイレクトする可能性があるかどうかを知りたいです。

私は私のpage.phpを持っているとしましょう、このページにはこれがあります:

<?php header("HTTP/1.1 404 Not Found"); ?>

ブラウザー (Chrome で Web 開発ツールを使用) は、応答が送信されたことを示していますが、デフォルトのエラー ページにリダイレクトされません。ファイルがまだ存在している可能性があります。

私がやりたいことは、特定のファイルを自分でデフォルトのエラーページにリダイレクトすることですが、ブラウザに表示される正確な URL を維持することは、存在しない URL を入力したときにサーバーが行うのと同じアクションです

4

3 に答える 3

1

私の記憶が正しければ、httpd.conf で特定の 404 ページを使用するように Apache を構成するだけで、URL は同じままですが、404 エラー ページが表示されます。

ErrorDocument 404 /404.php

/404.php に次のように入力します。

<html>
    <head>
        <title>Object not found</title>
    </head>
    <body>
        <h1>Object not found</h1>
        <p>The object <?php echo($_SERVER['PHP_SELF']); ?> could not be found on this server.</p>
    </body>
</html>
于 2012-11-04T01:36:46.033 に答える
0

HTTP 応答コードを取得するには、http_response_code()関数を使用できます。例:

if( http_response_code() == 404 )
{
    // Redirect to your valid custom page
    header("Location: http://www.mypage.com/page_not_found.php" );
}
于 2012-11-04T01:39:34.037 に答える