ウェブサイトにおけるリダイレクト(英: redirect)とは、ウェブサイトの閲覧において、指定したウェブページから自動的に他のウェブページに転送されること。URLリダイレクト(URL redirection)とも言われる。
通常はウェブページのURLが変わったときに、元のURLから新しいURLへ誘導するときに用いられる。フィッシング詐欺サイトへの誘導などで用いられている場合もある。
HTTPリダイレクト
HTTPヘッダにあるHTTPステータスコードにてリダイレクトの種類を伝え、Location:ヘッダで移動先を伝える。種類には301 Moved Permanently(恒久的な移転)や302 Found(発見)などがある。Webサーバの設定ファイル(Apacheの場合、httpd.confファイルや.htaccessファイル)や、CGIなどで指定できる。
HTML文書のhead要素内にmeta要素の http-equiv属性の値に"refresh"を記述する。content属性で文書を読み込んでから何秒後に転送させるかを指定する。HTTPステータスコードはリダイレクトなしで直接アクセスした場合と同様のコードが返される。
- metaタグ記述例
<meta http-equiv="Refresh" content="3; url=http://www.example.com/">
と設定すると、3秒後にhttp://www.example.com/
へ自動転送される。
- content="3"の3の部分が転送までの時間を意味する。
- クローラーの解釈
- 各種検索サイトのクローラーの解釈は,それぞれ異なるので注意が必要である。0秒の場合、Yahoo! JAPANの場合は301リダイレクト(永久的なリダイレクト)と扱われる[1] 。Google検索の場合はサーバサイドで301リダイレクトの使用を奨めている[2]。
クライアントスクリプトによるリダイレクト
JavaScript等のクライアントスクリプトを用いて、自動でページ遷移する処理を記述することで転送をする方法。locationまたはlocation.hrefへの代入などの方法がある[3]。
セキュリティなどの理由でスクリプトの実行を許可していないウェブブラウザでは転送されない。HTTPレスポンスでは、リダイレクトなしで直接アクセスした場合と同様のステータスコードが返されるため検索エンジンなどのクローラに移転したことが伝わらない場合もある。
関連項目
参考文献
外部リンク