PHPから、header('HTTP/1.0 404 Not Found');でヘッダーを送った後、
「apache」の404エラーファイルを読み込みたいのですが、思うように出来ません。
以下のような方法でエラーページを表示させることは出来るのですが、、、
せっかくですので、apacheのエラーファイルのみで一括管理したく思います。
header('HTTP/1.0 404 Not Found');
include('404.php');
exit;
良い方法が御座いましたらご教授下さいm(__)m
▼以下、当方の環境です。
PHP5.2(apacheモジュールで動作)
apache2.2.4
目的がよく分からないのですが、Apacheでエラー時表示ファイルを一元化したいのであれば、ErrorDocumentを使い、httpd.confまたは.htaccessに
ErrorDocument 404 [エラー時表示ファイル]
ように設定すればどうでしょうか。
ご回答ありがとう御座います。
具体的な目的ですが、簡単に説明させて頂きます。
以下のようなURLがあった場合で、
http://example.jp/index.php?p=1
引数「p=1」の時は正常にページが表示されるプログラムがあったとします。
それ以外の引数は存在しない処理(ページ)として処理したくて、
例えば、「p=2」の時は、404NotFoundにしたいのです。
また、実際に存在しない.phpファイル、例えば「aaaaa.php」へアクセスした場合、アパッチは正直に「404」を返します。
このような単純にファイルがあるかどうかの判定ですと、pahooさんが仰るような「httpd.conf内でエラードキュメントを指定」で問題ないかと思います。
しかし、実際に存在するファイルにアクセスした場合、基本的に結果は200を返します。
そこで、header関数で404を返すようにしたのですが、エラーページそのものは、また用意しなくてはならなく、なんとかアパッチの404を使いたいと思った次第です。
以上、説明が伝われば幸いです。
よろしくお願い致します。