PHP 404 エラー: ラスト マイル ギャップについて
一見正しいコードに従っているにもかかわらず、PHP アプリケーションが 404 を表示できないのはなぜですかエラーが発生し、代わりに空白のページが表示されますか?
提供されたコードにより、 404エラーヘッダーが送信されます。ただし、Web サーバーと PHP で応答がどのように処理されるかという重要な違いが説明されていません。
Web サーバーの処理
通常、Web サーバーはリクエストを処理します。そして、その URI で要求されたファイルが見つからない場合は、404 ヘッダーを送信し、カスタム 404 エラーを表示します。 page.
PHP インターセプト
Web サーバーがリクエストを PHP ページに委任するとき、PHP スクリプトはヘッダーと応答本文の両方を生成します。これは、404 ヘッダーが PHP によって送信されたにもかかわらず、Web サーバーが標準の 404 ページの代わりに PHP ページを表示することをすでにコミットしていることを意味します。
PHP へのハンドオーバー
その結果、PHP スクリプトは 404 エラーを処理する責任を効果的に引き継ぎます。これにより、次の 2 つのエラーが発生します。課題:
解決策
問題を解決するには、404 ケースを明示的に処理し、エラー メッセージを自分で出力する必要があります。次のコードは例を示しています:
if (strstr($_SERVER['REQUEST_URI'],'index.php')) { header('HTTP/1.0 404 Not Found'); echo '<h1>404 Not Found</h1>'; exit; }
以上がPHP アプリで 404 エラーではなく空白のページが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。