オリジナルエラーメッセージ

Updated / Published

403 ErrorDocument, 404 Error Not Found, 500 Internal Server Error などの HTTPステータスのエラー発生時のメッセージを自作(オリジナル)のメッセージが書かれたファイルで表示するように設定する方法(ErrorDocumentディレクティブ)を紹介します。

ステータスコードとエラーメッセージ

ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

ファイルが移動されていたり、ドメイン変更などでウェブサイトが移転、または閉鎖されていたりなどの場合に利用しているブラウザによって異なりますが「ページが見つかりません」といった類いのメッセージが表示されるページに誘導されることがあります。このメッセージが表示された場合、せっかく訪問してくれたユーザは、すぐに元の検索結果のページなどに戻っていってあなたのウェブサイトから去っていってしまうことでしょう。

しかし、エラーメッセージを自作して、オリジナルのエラーメッセージを表示する方法を取ることで、エラーが表示される理由をうまくユーザに伝えることができれば、別ルートへ案内してユーザが探している情報へと誘導することができるかもしれません。

分散設定ファイルである .htaccess において自作のエラーメッセージの表示が有効なのは 4xx(クライアントエラー)系や 5xx(サーバエラー)系のステータスコード(403 ErrorDocument, 404 Error Not Found, 500 Internal Server Error など)のみです。

設定方法は、.htaccessファイルに ErrorDocumentディレクティブに続いてステータスコードを記述し、半角スペースを空けてオリジナルのエラーメッセージとして表示するファイルの URI やメッセージを指定します。表示したいファイルの URI は相対URI, 絶対URI のどちらの指定でも可能です。代表的なステータスコードには次の3つがあります。

403
アクセス権がない(ファイルのパーミッションや .htaccess 等の設定でアクセス制限がかかっている)場合に表示
404
要求したファイルが見つからなかった場合に表示
500
CGI の記述ミス、または .htaccess などのサーバ設定ファイルに記述ミスがある場合に表示

まとめと ErroDocumentディレクティブ

ErroDocument ステータスコード [ URI | "メッセージ" ]

ErroDocumentディレクティブに続いて、最初の値に 403, 404, 500 などのステータスコードを記述します。そして、半角スペースを空けて、そのステータスコードに該当するエラーが起こった場合に表示する URI のファイル、またはメッセージを指定します。

URI ではなく、直接、指定のメッセージを表示させる場合は、文字列にスペースを含むのであれば、ダブルクォーテーション(")で囲みます。日本語の指定も可能ですが、.htaccess を保存する際の文字コードに注意してください。サーバによっては、.htaccess ファイルを保存する文字コードが Shift_JIS 以外では文字化けするなどの場合があります。また、ユーザの環境によっても日本語は問題を起こすことが多いようなので、なるべく半角英数字だけを使ってエラー内容を案内できるように英語あたりを使っておくのが無難です。