リダイレクトとは、あるURLへ来た人を、別のURLへ自動で案内する仕組みです。
たとえば、古い記事URLを開いたら新しい記事URLへ移動する、http://で開いたらhttps://へ切り替わる、といった場面で使われます。

リダイレクトは、Webサイト上の「移転しました。新しい住所はこちらです」という案内板のようなものです。
この記事では、リダイレクトの意味、HTTPでURLが切り替わる仕組み、301・302・307・308の違い、よくある用途、ループやチェーンの注意点を初心者向けに整理します。
リダイレクトは新しいURLへの案内
リダイレクトは、旧URLや一時的に使えないURLへアクセスした利用者を、別のURLへ案内するために使います。ブラウザの画面上では、気づかないうちにアドレスバーのURLが変わっていることがあります。
MDNでは、URL redirectionはページやWebアプリなどに複数のURLを与える技術で、HTTPにはこのための特別なレスポンスがあると説明されています。まずは「古い住所に来た人を新しい住所へ案内する仕組み」と考えると理解しやすいです。
次の図では、古いURLに来た利用者が新しいURLへ案内される様子を見てください。今回は、単なる箱ではなく、Webサイトの移転案内としてイメージ化しています。

HTTPリダイレクトの仕組み
HTTPリダイレクトでは、サーバーが3xx系のステータスコードとLocationヘッダーを返します。ブラウザはそのレスポンスを受け取ると、Locationに書かれた新しいURLを開き直します。
次の図では、ブラウザが旧URLを開き、サーバーが移動先を返し、ブラウザが新URLを開く流れを確認してください。リダイレクトの中心は、3xxステータスコードとLocationヘッダーです。

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page
HTTPの基本はHTTPとは?HTTPSとは?、URLの基本はURLとは?で確認できます。
301・302・307・308の違い
リダイレクトでよく見るのが、301、302、307、308です。大きく見ると、301と308は恒久的な移動、302と307は一時的な移動です。さらに、307と308はHTTPメソッドやリクエスト本文を変えない、という点が重要です。
次の図では、リダイレクトの種類を道路標識として見てください。「ずっと移転」なのか「一時的な迂回」なのかで、使うコードが変わります。

| コード | 意味 | 初心者向けの見方 |
|---|---|---|
| 301 | Moved Permanently | このURLは今後ずっと新しいURLへ移動 |
| 302 | Found | 一時的に別URLへ移動 |
| 307 | Temporary Redirect | 一時的に移動し、HTTPメソッドを変えない |
| 308 | Permanent Redirect | 恒久的に移動し、HTTPメソッドを変えない |
通常のWebページ閲覧では301と302をまず押さえれば十分です。フォーム送信やAPIのようにGET以外のリクエストが関係する場合は、307や308の意味が重要になります。
リダイレクトが使われる場面
リダイレクトは、URL変更だけでなく、HTTPS化、メンテナンス中の一時案内、フォーム送信後の完了ページ表示など、さまざまな場面で使われます。
次の図では、リダイレクトが使われる代表的な場面を地図のように整理しています。利用者から見ると「勝手にURLが変わった」ように見えますが、裏側では移動先を案内しています。

リダイレクトとリンク、DNS、URL書き換えの違い
リダイレクトはリンクと似ていますが、利用者がクリックして移動するリンクとは違い、サーバーやページ側が自動で移動先を案内します。DNSとも違います。DNSはドメイン名をIPアドレスへ変換する仕組みで、ページ単位の移動先を案内するものではありません。
| 用語 | 役割 | リダイレクトとの違い |
|---|---|---|
| リンク | 利用者がクリックして移動する入口 | 自動移動ではない |
| DNS | ドメイン名をIPアドレスへ変換する | ページの移転案内ではない |
| URL書き換え | サーバー内部でURLの扱いを変える | ブラウザに移動を見せない場合がある |
| リダイレクト | 別URLへ自動で案内する | ブラウザが新URLを開き直す |
DNSの基本はDNSとは何か?、ブラウザの役割はブラウザとは?であわせて確認できます。
リダイレクトで注意したいこと
リダイレクトは便利ですが、設定を間違えると利用者がページにたどり着けなくなります。特に注意したいのが、リダイレクトループ、長いリダイレクトチェーン、内部リンクの放置です。
次の図では、リダイレクトで避けたい迷子パターンを見てください。AからBへ案内したはずがBからAへ戻ると、ブラウザは終わらない移動を繰り返してしまいます。

MDNでも、リダイレクトごとに追加のHTTPリクエストが発生するため、使いすぎを避けるべきだと説明されています。内部リンクを直せる場合は、リダイレクトに頼らず新URLへ直接リンクしましょう。
ユーザーとして知っておきたい見方
リダイレクト自体は正常な仕組みです。ただし、ログイン画面や決済画面で知らないドメインへ移動した場合は注意が必要です。アドレスバーのドメインを確認し、怪しい移動先ではパスワードやカード情報を入力しないようにします。
キャッシュやCookieが原因で古いリダイレクトが残ったように見えることもあります。ページ移動がおかしいときは、別ブラウザで確認する、キャッシュを削除する、Cookieの影響を切り分ける、といった確認も役立ちます。
キャッシュはキャッシュとは?、CookieはCookieとは?で詳しく解説しています。
開発者が最初に確認するポイント
開発者がリダイレクトを設定するときは、どのURLからどのURLへ、恒久的なのか一時的なのか、どのHTTPメソッドを扱うのかを確認します。
既存記事とあわせて読む順番
リダイレクトはURL、HTTP、ブラウザ、DNSと一緒に理解するとつながります。Webページが表示される流れを押さえたうえで、3xxレスポンスとLocationを見ると理解しやすいです。
公式情報と関連リンク
リダイレクトの基本はMDNのRedirections in HTTP、ステータスコードの整理はMDNのHTTP response status codes、移動先を示すLocationヘッダーはMDNのLocation headerが参考になります。
まとめ
リダイレクトは、あるURLへ来た人を別のURLへ自動で案内する仕組みです。
まずは、リダイレクトを「Webサイトの移転案内」として押さえましょう。そのうえで、301と302の違い、Locationヘッダー、ループの注意点を理解すると、Webのトラブル対応やサイト運用で役立ちます。
