エラーメッセージのカスタマイズ

ウェブページを表示しようとした際、ページが存在しなかったりすると、「404 Not Found」というエラーが出ますよね。
今日はApacheの設定をいじって、このページをカスタマイズしました。

設定方法は簡単で、httpd.confに以下の1行を追加するだけです。1

ErrorDocument 404 /error/404.html

404というのがエラーコードで、他に有名なものでは「403 Forbidden」や「500 Internal Server Error」などがあります。
/error/404.html というのが、エラー時に表示させるページのパスで、PHPやCGIを指定することも出来るようです。

しかしここで問題が。


前述の設定で403404500のページを変えてみたのですが、何故か500だけ変わらない。
わざとエラーが起こるスクリプトを作成し2表示させると、ほとんどの場合空白のページが表示され、たまにデフォルトのエラーページが出ます。3

試しに404エラーで500用のページを表示させてみたのですが、これはちゃんと表示される。
逆に500エラーに404用のページを設定した場合は、上記と同じ症状が出てうまく表示されない。

また、ErrorDocumentには、次のように簡単なメッセージを表示するように設定することも出来ます。

ErrorDocument 500 "Error!!"

が、この場合は、ちゃんと設定した文字列が表示されました。

気になるのは、デフォルトのエラーページ中に、次の1行が書かれているところ。

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

これは、ErrorDocumentで指定したファイルが見付からない場合に表示される文のようなのですが、同じファイルを404で表示させると問題なく表示されるので、500だけ何か特別な設定が必要なのでしょうか?

Google先生に聞いてみたところ、同じように悩んでる人の掲示板書き込みが2件45見付かったのですが、どちらも解決していない様子。
何かご存じの方がいらっしゃったら、情報ください。m(_ _)m

  1. サーバ側で許可されていれば、.htaccessで設定することも出来ます。
  2. 実行許可を与えてないものと、Perlのパスが間違っているものをそれぞれ用意しました。
  3. 空白ページを表示させるのは、ひょっとしたらブラウザの仕様かもしれませんが。
  4. http://www.tohoho-web.com/lng/199906/99060210.htm
  5. http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4092&forum=12&2

コメントを残す