リダイレクトのステータスコード(HTTPレスポンスコード)

Server

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上、リダレクト時のコードは重要なので、最適なものを利用しましょう。
スポンサーリンク
レクタングル(大)