500 Internal Server Errorページの配置

symfony1.4では、誰もキャッチしない例外が発生した場合、デフォルトでは茶色い感じの「Oops! 500 Internal Server Error」画面が表示されます。 もちろん、エラーが発生しないようにアプリケーションを作りますが、万が一予期しないエラーが発生した場合、symfonyのデフォルトエラーページを見せる訳にもいきませんので、オリジナルページに差し替えました。

ファイル配置

方法は簡単で、下記いずれかのファイルを配置するだけです。 なお、このページ内ではヘルパー等は使えないので、完全静的ページで記述する必要があります。

  • サイト共通ページとする場合
config/error/error.html.php
  • アプリケーション個別ページとする場合(フロントエンドアプリとバックエンドアプリとではエラーページを別にする場合)
apps/<アプリケーション>/config/error/error.html.php
  • アプリケーション個別ページのほうが優先されます。

確認したソース

lib/vendor/symfony/lib/exception/sfException.class.php
getTemplatePathForError()メソッド

facebook slideshare rubygems github qiita