WEBサイトでリダイレクトを行う際には300番台のステータスコードが利用されます。
現時点で、リダイレクトのステータスコードには 301、302、303、307、308 の5種類あります。
ステータスコード | 説 明 |
---|---|
301 (Moved Permanently) |
URLが永久的に新しいURLへ変更されたことを表す。 サイトリニューアル等でURLが変更になった場合や、 本来アクセスされるURLとは異なるURLへのアクセスを 制御させたい場合に利用。 SEOのインデックスを新旧URLで引き継ぎたい場合は301を指定する。 |
302 (Found) |
一時的に別のURLへ遷移させたい時に利用。 リダイレクト先は一時的なURL、古いURLは今後も利用する。 サーバーエラーが発生したときにエラーページへリダイレクト する場合等に利用。 プログラム等でのリダイレクト時にステータスコードを 指定しないと多くの場合、302が自動的に指定される。 最も広く使われるリダイレクトのステータスコード。 |
303 (See Other) |
新しいURLにはGETアクセスすることが決められたリダイレクト。 『フォームからPOSTした後、リダイレクトしてTOPページへ戻す』、 『サーバ側でロケール判定し、言語毎のURLへリダイレクト』 というような遷移で使う。 HTTP/1.1から導入。 |
307 (Temporary Redirect) |
一時的に別のURLへ遷移させたい時に利用。 302と似ているが、307はリダイレクト前と同一メソッドで リダイレクト先へもアクセスを行う。 HTTP/1.1から導入。 |
308 (Permanent Redirect) |
URLが永久的に新しいURLへ変更されたことを表す。 301と似ているが、308はリダイレクト前と同一メソッドで リダイレクト先へもアクセスを行う。 HTTP/1.1から導入。 |
303、307、308はHTTP/1.1準拠のため、フィーチャーフォン、スマートフォン等、利用環境によっては使えない場合があるので注意が必要です。
302は元々は「Found」ではなく、「Moved Temporarily」でした。
302の主旨としては下記の2つ。
1. 既存のリソースに対し、一時的に別の URI を割り当てる
2. リクエストに対する結果として、適切な別の URI に誘導する
上記1.の用途をリダイレクト時のリクエストメソッドの変更可否で分けたのが
302 Found と 307 Temporary Redirect、2.のような用途が 303 See Other です。
308は301のリクエストメソッド(GET/POST etc.)の変更不可版です。
要は「リダイレクトが恒久的か一時的か」「メソッド変更が可能か否か」でコードが別れています。
ステータスコード | 恒久/一時 | メソッド | 登録 | 参照RFC |
---|---|---|---|---|
301 Moved Permanently
|
恒久 | 変更可 | 1996 年 | RFC1945 RFC2068 RFC2616 |
302 Found
|
一時 | 変更可 | 1996 年 | RFC1945 RFC2068 RFC2616 |
303 See Other
|
明記なし | GET or HEAD | 1997 年 | RFC2068 RFC2616 RFC7231 |
307 Temporary Redirect
|
一時 | 変更不可 | 1999 年 | RFC2068 RFC2616 RFC7231 |
308 Permanent Redirect
|
恒久 | 変更不可 | 2014 年 | RFC7238 RFC7538 |
SEO上、リダレクト時のコードは重要なので、最適なものを利用しましょう。
コメント