人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPに関する質問です。

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


●質問者: uniuniko
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache EXIT HTTP NOT FOUND PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント

目的がよく分からないのですが、Apacheでエラー時表示ファイルを一元化したいのであれば、ErrorDocumentを使い、httpd.confまたは.htaccessに

ErrorDocument 404 [エラー時表示ファイル]

ように設定すればどうでしょうか。

http://httpd.apache.org/docs/2.2/ja/mod/core.html

http://nekhet.ddo.jp/item/787

◎質問者からの返答

ご回答ありがとう御座います。

具体的な目的ですが、簡単に説明させて頂きます。


以下のようなURLがあった場合で、

http://example.jp/index.php?p=1

引数「p=1」の時は正常にページが表示されるプログラムがあったとします。

それ以外の引数は存在しない処理(ページ)として処理したくて、

例えば、「p=2」の時は、404NotFoundにしたいのです。


また、実際に存在しない.phpファイル、例えば「aaaaa.php」へアクセスした場合、アパッチは正直に「404」を返します。

このような単純にファイルがあるかどうかの判定ですと、pahooさんが仰るような「httpd.conf内でエラードキュメントを指定」で問題ないかと思います。


しかし、実際に存在するファイルにアクセスした場合、基本的に結果は200を返します。

そこで、header関数で404を返すようにしたのですが、エラーページそのものは、また用意しなくてはならなく、なんとかアパッチの404を使いたいと思った次第です。


以上、説明が伝われば幸いです。

よろしくお願い致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ