404,418エラーページを実際に実装してみた
エラーページについて
エラーページとはクライアントあるいはサーバでエラーが発生して、目的のページを閲覧できない場合にリダイレクトされるページのことです。
Webサイトに訪れた時にWebサーバがレスポンスの結果を示す「ステータスコード」を返してくれるので、それをもとにエラーページにリダイレクトします。
ステータスコードは3桁の数字で構成されますが、エラーを示すコードはクライアントエラーの「400番台」とサーバエラーの「500番台」になります。
ステータスコード | 内容 |
---|---|
100番台 | 情報通知 |
200番台 | 処理の成功 |
300番台 | リダイレクト |
400番台 | クライアントエラー |
500番台 | サーバエラー |
ステータスコードについて詳しく知りたい方は次のページで紹介しています。 「個人Web制作で絶対に覚えておきたいHTTPステータスコード一覧」
ハーゲンダッツのエラーページ
ハーゲンダッツの公式HPで存在しないurlリンクに飛ぶと、404エラーが発生して404エラーページに飛ばされました。
リンクが存在しない等のクライアントエラーを発生した場合に初期ページにリダイレクトするサイトも多くありますが、エラーページを作成することでエラー内容を閲覧者が理解することができます。
このようなエラーページを作成することで、閲覧者がステータスコードに詳しくなくてもurlリンクが存在しないことが分かります。
実際にエラーページを作成する
では実際にエラーページを作成していきます。今回作るエラーページは実際に確かめやすい404番とおまけで418番のエラーページを作成します。
エラーページを作成した後に、エラーが起こった時そのページに飛ぶ処理を書いていきます。
最後にエラーを起こすテストをして実際にページ移動できたら完成です。
- エラーページ作成
- リダイレクト処理
- 実際にテストする
404エラーページ
ステータスコード「404」は存在しないしないページを閲覧しようとした際にWebサーバから返されるものです。
実際によく起こるエラーというのもあり、ステータスコードについては知らないが「404-Not Found」だけ知っている人がいるほど有名なステータスコードになっています。
エラーページを作成する
作成したページ「404 Not Found」自身のサイトのデザインで404エラーが発生したことを伝えるページを作成しました。
htaccessファイルを作成する
htaccessファイルを使用して、ステータスコード「404」が返されたらさきほど作成したエラーページにリダイレクトする処理を書きます。
作成するファイル名は「.htaccess」拡張子も「.htaccess」になっていることを確認したら、htaccessファイルを最上位階層に置いてください。
htaccessファイルを作成できたら、404エラー時に指定のページにリダイレクトする次のコードを書いて完成です(指定のページのurlは自分のページに変更してください)。
ErrorDocument 404 https://cococo-web.com/errorpage/404.html
htaccessファイルについて詳しく知りたい方は次のページで紹介しています。 「htaccessファイルが動いていなかった原因は名前だった話」
実際にリダイレクトされるか確かめる
404エラーページを確かめる方法は簡単で、実際に存在しないページのurlを入力するだけです。
このページのurlが「https://cococo-web.com/HPO/errorpage/errorpage.html」になっているのでこのurlに適当に「testttttt」という文字をプラスして検索します。
↓
これで存在しないページを閲覧しようとしたら、404エラーページにリダイレクトできたことを確認できたと思います。
418エラーページ
おまけでジョークステータスコードである「418-I'm a teapot」のエラーページを作成していきます。
418番はティーポットにコーヒーを入れようした場合に発生する「私はティーポットのためコーヒーは淹れられません」というジョークエラーです。
googleのteapot遊び心のあるgoogleはteapotページを設定しており、このページのステータスコードが418になっています。
もちろん418エラーが起こることはないので418エラーが発生した場合にリダイレクトする処理ではなく、googleのように作成するページのステータスコードを「418」にします。
そのため418エラーページの作成は次の手順で作成していきます。
- エラーページ作成
- ステータスコードを変更
- 実際に確かめる
「418-I'm a teapot」について詳しく知りたい方は次のページで紹介しています。 「ジョークHTTPステータスコード「418-I'm a teapot」について完全解説」
エラーページの作成
まずは418番のエラーページを作成していきます。エラーの内容がティーポットにコーヒーを淹れようとした場合に起こるものなのでコーヒーを淹れられないことを伝えます。
作成したページ「418-I'm a teapot」ステータスコードの変更
作成したページのhead部分にphpでステータスを「I'm a teapot」、コードを「418」に変更するコードを書きます。
$protocol = $_SERVER['SERVER_PROTOCOL'];
if( in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) === false ) {
$protocol = 'HTTP/1.0';
}
header( "$protocol 418 I'm a teapot" );
このコードを参考にしたサイト Thought is free
実際に確かめる
作成したページ「418-I'm a teapot」作成したページを開発モードでステータスコードを確認すると、しっかりと変更されたことがわかります。
まとめ
今回は404エラー「Not Found」ページと418エラー「I'm A Teapot」ページを作成しました。
エラーが発生した時にリダイレクト処理する方法を解説したので、他のエラーページも同じように作成できるようになったと思います。
また自分でステータスコードを変更できるようになったので、お遊びページの作成もできるようになったのでないでしょうか。