標準の LAMP アプリケーションでは、次のように .htaccess ルールを使用して 404 ページに人々を送信しています。
ErrorDocument 404 http://www.mydomain.com/404.php
ファイルシステムからファイルを読み取るphpファイルを使用して動的画像を提供していますが、画像がアプリから削除されたときにこれを取得していないことに気付きました.http://www.mydomain. mod_rewrite を使用して image.php を呼び出すcom/image_4.jg (たとえば) は、動的な画像ファイルが常に存在するため、ユーザーを 404 ページにリダイレクトしません。この場合、404 を使用する必要があることはわかっていますが、どこにあるのかわかりません。
明らかに、画像が削除されたときにヘッダーリダイレクトを 404.php ページに手動で挿入する必要があることはわかっていますが、実際にこのリダイレクトで 404 ヘッダーを送信する必要がありますか?. 私たちの 404.php ページのコードを見ると、実際にはすでに 404 ヘッダーが送信されてい("HTTP/1.1 404 Not Found");
ます。これは、SEO チームが数年前に指示したものです。これが正しいかどうかはわかりません。404ページ自体が見つからなかったことをほとんど暗示しているので、直感に反しているように思えます.
私はこれが2つの質問だと思います:
- 画像が見つからない場合、リダイレクト内で 404 ヘッダーを送信する必要がありますか?
- 404 ページは実際に 404 ヘッダーを送信する必要がありますか?
編集
404 の送信とリダイレクトを同時に行うことは実際には不可能のようです。たとえば、これにより Chrome に「おっと! このリンクは壊れているようです.」というメッセージが表示されます。メッセージ
header( "Location: /404.php", true, 404 );
このようにヘッダーを分割すると、意図したとおりに機能しません
header("HTTP/1.1 404 Not Found");
header("Location: /404.php" );
この場合、ヘッダーを見ると、302 に続いて 404 が送信されます。この場合、リダイレクトなしでヘッダーを送信するだけで十分でしょうか? 一部の人が推奨するように、単に410を送信するだけですか?