if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
なぜこれが機能しないのでしょうか? 空白のページが表示されます。
ベストアンサー1
あなたのコードは技術的には正しいです。その空白ページのヘッダーを見ると、404 ヘッダーが表示され、他のコンピューター/プログラムはファイルが見つからないという応答を正しく識別できます。
もちろん、ユーザーはまだ SOL です。通常、404 は Web サーバーによって処理されます。
- ユーザー: こんにちは、この URI Web サーバーに何かありますか?
- Web サーバー: いいえ、404 ではありません。404 用に表示されるページは次のとおりです。
問題は、ウェブサーバーがPHPページの処理を開始すると、404を処理するポイントをすでに過ぎていることです。
- ユーザー: こんにちは、この URI Web サーバーに何かありますか?
- ウェブサーバー: はい、あります。これはPHPページです。応答コードが何であるかを教えてくれます。
- PHP: うわ、OMG 404!!!!!!!
- Webサーバー: やばい、404ページの人はもう帰ってしまったので、PHPが教えてくれたものをそのまま送信します
404 ヘッダーの提供に加えて、PHP は実際の 404 ページの出力も担当するようになりました。