22

10月 12

 

403,404のエラー時にトップページ等、指定した先に飛ばす

Internet nerdery means that I can never just look at numbers like this without associating it with the HTTP status code

web上でサイトを見まわっていると時に「404 Not Found」などのエラーが出る事があります。
これはHTMLの規格上設定されたエラー番号(正確にはステータス・コードと言います)なのですが、それぞれ番号によって意味が違ってきます。

■ HTMLにおけるエラーの種類

・403
アクセス権限のないフォルダへのアクセスの際に表示

・404
ページ自体が存在しない場合に表示

・500
CGI等のプログラムのエラー等が起こった際に表示

・503
サーバーアクセス過多状態の際に表示

などなど、他にもステータス・コードは沢山存在しますが、普段目に付くのはだいたい上記のものあたりでしょう。

さて、おしゃれなサイトなんかは「404 Not Found」さえもおしゃれなページが表示されたりする事があります。
これは、「エラー404を踏んだユーザーを指定したページに飛ばす」という処理がなされているからなんですね。

この処理を可能にしているのは「.htaccess」というファイルに書かれているコードです。

■ .htaccessとは

.htaccessとはウェブサーバーがディレクトリごとの動作を制御する為のファイルです。
制御情報は.htaccessの存在するディレクトリと、サブディレクトリ全てに適用されます。
制御の具体的な例としては、IPやドメインによるアクセス制御や、CGIの設定等です。

本筋に戻ります。404エラーを踏んだユーザーを指定のページに飛ばすという事は以下のコードを書いた.htaccessファイルを設置すれば実現できます。

ErrorDocument 404 http://www.example.com/

404の数字を他のステータス・コードに変更すればそれぞれのステータス・コードごとに表示するページを変更する事ができます。
例では存在しないページを訪れた時、ユーザーはhttp://www.example.com/に接続する事になりますね。

ちなみに、.htaccessファイルはWindows上では作る事ができないと思います。先頭に"."(ピリオド)の付く名前のファイルを作ろうとすると「名前を入力してください」とシステムから警告が出されます。
この先頭に"."を付けるという形式はもともとUnix系のシステムで隠しファイルにする為の文化なのです。

なので、Windows上ではまず適当な名前を付けて、FTPソフトでアップロードした後に改めて".htaccess"と名付けてやるのがいいと思います。
基本的に、".htaccess"はウェブサーバーのウェブ公開ディレクトリのルートにおいてやれば動いてくれます。

photo by: itselea



One Comment

  1. yuiyui より:

    fdi7iutitidrd5uyi9ifiuiu

コメントを残す