過去記事「ウェブサイト運用で知っておくと便利なHTTPレスポンスのステータスコード一覧」でサーバーから返ってくるエラーコードをまとめておりますが、エラーの場合はデフォルトだと英字でエラーの詳細が表示される仕様になっています。
この形ですとユーザー側からすると少し不親切になってしまいますので、ページトップへのリンクや少しデザインを入れてみるなどで、ユーザビリティを向上させることができます。そこで今回はオリジナルのエラーページを.htaccessを使って表示させる方法をまとめていきたいと思います。
.htaccessへインデックスの非表示とエラー用のページを指定
今回の作業は.htaccessへ指定を行なっていくのですが、まずは下記の指定でデフォルトで表示されるディレクトリのインデックスページを表示させないようにしておきます。
Options -Indexes
これでディレクトリのインデックスページが表示されなくなりますが、代わりに403エラー(Forbidden)が返ってきます。そこでこれらのエラー画面をオリジナルのページを表示させるように指定していきます。その前にそれぞれのエラー画面をHTMLで用意しておきます。
エラー画面が用意できれば下記の指定を.htaccessに追記していきます。具体的には各エラーに対応するHTML画面のページファイルを指定していく形になります。この時に注意したいのが、必ず相対パスで指定するようにしましょう。絶対パスで指定してしまうとリダイレクトされてしまうため正しくエラー処理ができなかったり、ソフト404エラーの対象となる場合があります。
ErrorDocument 400 /400error.php ErrorDocument 401 /401error.php ErrorDocument 403 /403error.php ErrorDocument 500 /500error.php ErrorDocument 503 /503error.php
テストするとこんな感じで表示されるようになりました。表示頻度が高いのもは用意しておくのがいいのではないでしょうか。