ホーム > ネット > .htaccess 便利な使い方 404 Not Found エラー時等 特定ページ表示
目次 | 元のページ 前のページ | 次のページ サイトマップ | ページEND

.htaccess 便利な使い方 404 Not Found エラー時等 特定ページ表示


.htaccess 便利な使い方 404 Not Found エラー時等 特定ページ表示



「404 Not Found エラー」に代表されるように、IE(Internet Explorer)等のブラウザで、インターネット上の Web サイトを閲覧しようとした際、特定のエラー発生時に、そのエラー内容に対応したエラーコード(HTTPステータスコード)ページがブラウザに表示されます

デフォルトでは、単にエラーコード(HTTPステータスコード)、簡単なエラー内容(意味)が表示されるだけですが、「.htaccess」ファイルを利用すると、特定のページを表示することができます


例えば、「404 Not Found エラー」の際は、多くは、閲覧者が URL を打ち間違えたか、サイト側でお引越しなどにより URL が変更されているような場合ですので、そのまま「そんなページはありません」と言っておしまいでは、あまりに不親切というもので、例えば、代わりに、サイトのホームページ(トップページ)とか目次ページ、あるいは、サイトマップを表示してあげる方が、お互いの得というものでしょう




代表的な エラーコード(HTTPステータスコード) と その意味



エラーコード 意味
401 Unauthorized 認証が必要
403 Forbidden アクセス拒否
404 Not Found ページが見つからない
500 Internal Server Error サーバ内部エラー
503 Service Unavailable サービス利用不可
(過負荷やメンテナンス等の為利用不可)




「.htaccess」ファイル 記述内容 (HTTPステータスエラー時 リダイレクト)



記述場所
.htaccess
構文
ErrorDocument (エラーコード) (HTMLファイルの絶対パス(ルートからのパス))
記述例
ErrorDocument 403 /err/err_403.html
ErrorDocument 404 /index.html
説明
ErrorDocument (エラーコード) (HTMLファイルの絶対パス(ルートからのパス))
「エラーコード 」(HTTPステータスコード)と、表示したいページの「HTMLファイルの絶対パス(ルートからのパス)」(「/err/err_403.html」「/index.html」等)を、半角スペースで区切って記述します

※.IEでは、独自エラーページ(HTMLファイル)のHTML構文等を含んだファイルサイズが、512バイト(=0.5KB)を下回っていると、IE内部のエラー画面が優先されて表示されますので、ファイルサイズが、512バイト(=0.5KB)を超えるようにしておく必要があります
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします




「HTTPステータスコード」(エラーコード等) と その意味 一覧



HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードで、RFC 2616、RFC 7231等によって定められています


コード 意味
1xx Informational リクエストは受け取られた
処理は継続される
情報
100 Continue クライアントはリクエストを継続できる
サーバがリクエストの最初の部分を受け取り、まだ拒否していないことを示す
例として、クライアントがExpect: 100-continueヘッダをつけたリクエストを行い、それをサーバが受理した場合に返される
継続
101 Processing WebDAVの拡張ステータスコード
処理が継続されて行われていることを示す
処理中
2xx Success リクエストは受け取られ、理解され、受理された
成功
200 OK リクエストは成功し、レスポンスとともに要求に応じた情報が返される
ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返している
正常
201 Created リクエストは完了し、新たに作成されたリソースのURIが返される
例: PUTメソッドでリソースを作成するリクエストを行ったとき、そのリクエストが完了した場合に返される
作成
202 Accepted リクエストは受理されたが、処理は完了していない
例: PUTメソッドでリソースを作成するリクエストを行ったとき、サーバがリクエストを受理したものの、リソースの作成が完了していない場合に返される。バッチ処理向け
受理
203 Non-Authoritative Information オリジナルのデータではなく、ローカルやプロキシ等からの情報であることを示す
信頼できない情報
204 No Content リクエストを受理したが、返すべきレスポンスエンティティが存在しない場合に返される
例: POSTメソッドでフォームの内容を送信したが、ブラウザの画面を更新しない場合に返される
内容が無い
205 Reset Content リクエストを受理し、ユーザエージェントの画面をリセットする場合に返される
例: POSTメソッドでフォームの内容を送信した後、ブラウザの画面を初期状態に戻す場合に返される
内容のリセット
206 Partial Content 部分的GETリクエストを受理したときに、返される
例: ダウンロードツール等で分割ダウンロードを行った場合や、レジュームを行った場合に返される
部分的内容
207 Multi-Status WebDAVの拡張ステータスコード
複数のステータス
208 Already Reported WebDAVの拡張ステータスコード
既に報告
226 IM Used Delta encoding in HTTPの拡張ステータスコード
IM使用
3xx Redirection リクエストを完了させるために、追加的な処理が必要
リダイレクション
300 Multiple Choices リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返される
具体例として、W3Cのhttp://www.w3.org/TR/xhtml11/DTD/xhtml11.html
複数の選択
301 Moved Permanently リクエストしたリソースが恒久的に移動されているときに返される
Location:ヘッダに移動先のURLが示されている
例としては、ファイルではなくディレクトリに対応するURLの末尾に/を書かずにアクセスした場合に返される
恒久的に移動した
302 Found リクエストしたリソースが一時的に移動されているときに返される
Location:ヘッダに移動先のURLが示されている
元々はMoved Temporarily(一時的に移動した)で、本来はリクエストしたリソースが一時的にそのURLに存在せず、別のURLにある場合に使用するステータスコードであった
しかし、例えば掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときにもこのコードが使用されるようになったため、302はFoundになり、新たに303 ・ 307が作成された
発見した
303 See Other リクエストに対するレスポンスが他のURLに存在するときに返される
Location:ヘッダに移動先のURLが示されている
リクエストしたリソースは確かにそのURLにあるが、他のリソースをもってレスポンスとするような場合に使用する
302の説明で挙げたような、掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときに使われるべきコードとして導入された
他を参照せよ
304 Not Modified リクエストしたリソースは更新されていないことを示す
例として、 If-Modified-Since:ヘッダを使用したリクエストを行い、そのヘッダに示された時間以降に更新がなかった場合に返される
未更新
305 Use Proxy レスポンスのLocation:ヘッダに示されるプロキシを使用してリクエストを行わなければならないことを示す
プロキシを使用せよ
306 (Unused) ステータスコードは前のバージョンの仕様書では使われていたが、もはや使われておらず、将来のために予約されているとされる
検討段階では、「Switch Proxy」というステータスコードが提案されていた
(予約)
307 Temporary Redirect リクエストしたリソースは一時的に移動されているときに返される
Location:ヘッダに移動先のURLが示されている
302の規格外な使用法が横行したため、302の本来の使用法を改めて定義したもの
一時的リダイレクト
308 Permanent Redirect 恒久的リダイレクト
恒久的リダイレクト
4xx Client Error クライアントからのリクエストに誤りがあった
クライアントエラー
400 Bad Request 定義されていないメソッドを使うなど、クライアントのリクエストがおかしい場合に返される
リクエストが不正
401 Unauthorized Basic認証やDigest認証などを行うときに使用される
通常、ブラウザはこのステータスを受け取ると、認証ダイアログを表示する
認証が必要
402 Payment Required 現在は実装されておらず、将来のために予約されている
支払いが必要
403 Forbidden リソースにアクセスすることを拒否された
リクエストはしたが処理できないという意味
アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返される
例: 社内(イントラネット)からのみアクセスできるページに社外からアクセスしようとした
アクセス禁止
404 Not Found リソースが見つからなかった
単に、アクセス権がない場合などにも使用される
ページが見つからない
405 Method Not Allowed 許可されていないメソッドを使用しようとした
例: POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返される
許可されていないメソッド
406 Not Acceptable Accept関連のヘッダに受理できない内容が含まれている場合に返される
例: サーバは英語か日本語しか受け付けられないが、リクエストのAccept-Language:ヘッダにzh(中国語)しか含まれていなかった
例: サーバはapplication/pdfを送信したかったが、リクエストのAccept:ヘッダにapplication/pdfが含まれていなかった
例: サーバはUTF-8の文章を送信したかったが、リクエストのAccept-Charset:ヘッダには、UTF-8が含まれていなかった
受理できない
407 Proxy Authentication Required プロキシの認証が必要な場合に返される
プロキシ認証が必要
408 Request Timeout リクエストが時間以内に完了していない場合に返される
リクエストタイムアウト
409 Conflict 要求は現在のリソースと競合するので完了出来ない
競合
410 Gone リソースは恒久的に移動・消滅した。どこに行ったかもわからない
404 Not Foundと似ているが、こちらは二度と復活しない場合に使われる
ただし、このコードは特別に設定しないと提示できないため、リソースが消滅しても404コードを出すサイトが多い
消滅した
411 Length Required Content-Length ヘッダがないのでサーバがアクセスを拒否した場合に返される
長さが必要
412 Precondition Failed 前提条件が偽だった場合に返される
例: リクエストのIf-Unmodified-Since:ヘッダに書いた時刻より後に更新があった場合に返される
前提条件で失敗
413 Payload Too Large リクエストエンティティがサーバの許容範囲を超えている場合に返す
例: アップローダの上限を超えたデータを送信しようとした
RFC 2616以前では、Request Entity Too Large(リクエストエンティティが大きすぎる)と定められていた
ペイロードが大きすぎる
414 URI Too Long URIが長過ぎるのでサーバが処理を拒否した場合に返す
例: 画像データのような大きなデータをGETメソッドで送ろうとし、URIが何10kBにもなった場合に返す(上限はサーバに依存する)
RFC 2616以前では、Request-URI Too Long(リクエストURIが大きすぎる)と定められていた
URIが大きすぎる
415 Unsupported Media Type 指定されたメディアタイプがサーバでサポートされていない場合に返す
サポートしていないメディアタイプ
416 Range Not Satisfiable 実リソースのサイズを超えるデータを要求した
例えば、リソースのサイズが1024Byteしかないのに、1025Byteを取得しようとした場合などに返す
RFC 2616以前では、Requested Range Not Satisfiable(リクエストしたレンジは範囲外にある)と定められていた
レンジが範囲外
417 Expectation Failed その拡張はレスポンスできない、または、プロキシサーバは、次に到達するサーバがレスポンスできないと判断している
具体例として、Expect:ヘッダに100-continue以外の変なものを入れた場合や、そもそもサーバが100 Continueを扱えない場合に返す
Expectヘッダによる拡張が失敗
418 I'm a teapot HTCPCP/1.0の拡張ステータスコード
ティーポットにコーヒーを淹れさせようとして、拒否された場合に返すとされる、ジョークのコードである
私はティーポット
421 Misdirected Request 誤ったリクエスト
誤ったリクエスト
422 Unprocessable Entity WebDAVの拡張ステータスコード
処理できないエンティティ
423 Locked WebDAVの拡張ステータスコード
リクエストしたリソースがロックされている場合に返す
ロックされている
424 Failed Dependency WebDAVの拡張ステータスコード
依存関係で失敗
426 Upgrade Required Upgrading to TLS Within HTTP/1.1の拡張ステータスコード
アップグレード要求
451 Unavailable For Legal Reasons 403 Forbiddenから派生したステータスコード
法的理由により利用不可
5xx Server Error サーバがリクエストの処理に失敗した
Error サーバエラー
500 Internal Server Error 内部にエラーが発生した場合に返される
例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される
サーバ内部エラー
501 Not Implemented 実装されていないメソッドを使用した
例として、WebDAVが実装されていないサーバに対してWebDAVで使用するメソッド(MOVEやCOPY)を使用した場合に返される
実装されていない
502 Bad Gateway ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した
不正なゲートウェイ
503 Service Unavailable サービスが一時的に過負荷やメンテナンスで使用不可能である
例として、アクセスが殺到して処理不能に陥った場合に返される
サービス利用不可
504 Gateway Timeout ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした
ゲートウェイタイムアウト
505 HTTP Version Not Supported リクエストがサポートされていないHTTPバージョンである場合に返される
サポートしていないHTTPバージョン
506 Variant Also Negotiates Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード
507 Insufficient Storage WebDAVの拡張ステータスコード
リクエストを処理するために必要なストレージの容量が足りない場合に返される
容量不足
508 Loop Detected WebDAVの拡張ステータスコード
ループを検出
509 Bandwidth Limit Exceeded そのサーバに設定されている帯域幅(転送量)を使い切った場合に返される
帯域幅制限超過
510 Not Extended An HTTP Extension Frameworkで定義されている拡張ステータスコード
拡張できない

目次 | 元のページ 前のページ | 次のページ サイトマップ | ページTOP
ホーム > ネット > .htaccess 便利な使い方 404 Not Found エラー時等 特定ページ表示
   

© 2014 abhp.net All Rights Reserved.

参考情報


Not Foundなど エラーページの変更(カスタマイズ)方法 [ホームページ作成] All About
HTTPステータスコード - Wikipedia

ページTOP
ページTOP
ページTOP
ページTOP