Loading...

404,418エラーページを実際に実装してみた

エラーページについて

エラーページとはクライアントあるいはサーバでエラーが発生して、目的のページを閲覧できない場合にリダイレクトされるページのことです。

Webサイトに訪れた時にWebサーバがレスポンスの結果を示す「ステータスコード」を返してくれるので、それをもとにエラーページにリダイレクトします。

ステータスコードは3桁の数字で構成されますが、エラーを示すコードはクライアントエラーの「400番台」とサーバエラーの「500番台」になります。

ステータスコード 内容
100番台 情報通知
200番台 処理の成功
300番台 リダイレクト
400番台 クライアントエラー
500番台 サーバエラー

ステータスコードについて詳しく知りたい方は次のページで紹介しています。 「個人Web制作で絶対に覚えておきたいHTTPステータスコード一覧」

ハーゲンダッツのエラーページ

ハーゲンダッツの公式HPで存在しないurlリンクに飛ぶと、404エラーが発生して404エラーページに飛ばされました。

リンクが存在しない等のクライアントエラーを発生した場合に初期ページにリダイレクトするサイトも多くありますが、エラーページを作成することでエラー内容を閲覧者が理解することができます。

このようなエラーページを作成することで、閲覧者がステータスコードに詳しくなくてもurlリンクが存在しないことが分かります。

実際にエラーページを作成する

では実際にエラーページを作成していきます。今回作るエラーページは実際に確かめやすい404番とおまけで418番のエラーページを作成します。

エラーページを作成した後に、エラーが起こった時そのページに飛ぶ処理を書いていきます。

最後にエラーを起こすテストをして実際にページ移動できたら完成です。

  1. エラーページ作成
  2. リダイレクト処理
  3. 実際にテストする

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エラーページの作成は次の手順で作成していきます。

  1. エラーページ作成
  2. ステータスコードを変更
  3. 実際に確かめる

「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」ページを作成しました。

エラーが発生した時にリダイレクト処理する方法を解説したので、他のエラーページも同じように作成できるようになったと思います。

また自分でステータスコードを変更できるようになったので、お遊びページの作成もできるようになったのでないでしょうか。