web-dev-qa-db-ja.com

404ページにURLが表示されない

私の404ページ(/404.php)は機能しますが、適切なヘッダーを送信しています(404-見つかりません)。

しかし、問題は、それが原因のリンク(たとえば、example.com/thisisnon-existant.htm)ではなく、404ページ(example.com/404.php)を提供していることです。

どうすれば修正できますか?

私がしたことは、。htaccessに以下を追加することだけでした:

ErrorDocument 404 http://example.com/404.php

私の404ページのコードは次のとおりです。 http://Pastebin.com/G7mQ4aT1

3
user20525

ErrorDocumentの完全なURLを使用すると、Apacheはalwaysその場所へのリダイレクトを発行します。代わりに、ErrorDocumentディレクティブを相対パスに変更します。

ErrorDocument 404 /404.php
5

スティーブンはあなたの質問に答えましたが、リンク先のサンプルコードに関する別の観察で、PHPコードの次の行を削除することもできます。

<?php
  header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
?>

このドキュメントが使用される場合、Webサーバーは既に404で応答しており、エラードキュメントを読みやすくするだけです。存在しない場所/ドキュメントのリクエストに続くサーバーのレスポンスに既に含まれている場合、このドキュメントがあなたのように404エラーを示すレスポンスヘッダーを追加する必要はありません。

3
TildalWave