リダイレクト (HTTP)

ウェブサイトにおけるリダイレクト:redirect)とは、ウェブサイトの閲覧において、指定したウェブページから自動的に他のウェブページに転送されること。URLリダイレクト(URL redirection)とも言われる。

通常はウェブページのURLが変わったときに、元のURLから新しいURLへ誘導するときに用いられる。フィッシング詐欺サイトへの誘導などで用いられている場合もある。

目次

HTTPリダイレクト編集

HTTPヘッダにあるHTTPステータスコードにてリダイレクトの種類を伝え、Location:ヘッダで移動先を伝える。種類には301 Moved Permanently(恒久的な移転)や302 Found(発見)などがある。Webサーバの設定ファイル(Apacheの場合、httpd.confファイルや.htaccessファイル)や、CGInon-parsed headerスクリプト)などで指定できる。

metaタグによるリダイレクト編集

HTML文書の head要素内に meta要素の http-equiv属性の値に "refresh" を記述する。content属性で文書を読み込んでから何秒後に転送させるかを指定する。HTTPステータスコードはリダイレクトなしで直接アクセスした場合と同様のコードが返される。

metaタグ記述例
<META HTTP-EQUIV="Refresh" CONTENT="3; URL=http://www.example.co.jp/">と設定すると、3秒後にhttp://www.example.co.jp/へ自動転送される。
CONTENT="3"の3の部分が転送までの時間を意味する。
クローラーの解釈
各種検索サイトのクローラーの解釈は,それぞれ異なるので注意が必要である。0秒の場合、Yahoo! JAPANの場合は301リダイレクト(永久的なリダイレクト)と扱われる [1]Google検索の場合はサーバサイドで301リダイレクトの使用を奨めている[2]。ヤフーについては0秒リダイレクトがSEO的に有利と言える[要出典]

クライアントスクリプトによるリダイレクト編集

JavaScript等のクライアントスクリプトを用いて、自動でページ遷移する処理を記述することで、転送をする方法。locationまたはlocation.hrefへの代入などの方法がある[1]

セキュリティなどの理由でスクリプトの実行を許可していないウェブブラウザでは、転送されない。また、HTTPレスポンスではリダイレクトなしで直接アクセスした場合と同様のステータスコードが返されるため、検索エンジンなどのクローラに移転したことが伝わらない場合もある。

Wikiにおけるリダイレクト編集

WikipediaなどWiki記法を用いている場合、ページ中に#REDIRECT [[AAA]]という文字列のみを含んでいる場合、そのページは"AAA"というページに転送される。Help:リダイレクトWikipedia:リダイレクトも参照。

脚注編集

[ヘルプ]
  1. ^ window.location - Web API インターフェイス”. MDN (2017年6月10日). 2017年6月23日閲覧。