トラブルシュート

リダイレクトループが起きるときの原因と対処

URLを開くと「このページはリダイレクトが繰り返されています」と表示されて先に進めない。リダイレクトループは、転送先が転送元へ戻ってしまうことで起きます。原因は限られているので、順に切り分ければ特定できます。

リダイレクトループとは

リダイレクトは、あるURLにアクセスした人を別のURLへ自動的に転送する仕組みです。リダイレクトループは、AがBへ、BがAへ(あるいはAがAへ)転送するように設定され、終わりなく転送が繰り返される状態を指します。

ブラウザは無限ループを防ぐため、一定回数を超えると転送を打ち切り、「リダイレクトが多すぎます」といったエラーを表示します。Chromeでは ERR_TOO_MANY_REDIRECTS と表示されることが多いです。エラーが出ること自体は、ブラウザが暴走を止めてくれている合図です。

よくある原因

原因はいくつかのパターンに分かれます。設定を見直すときは、まず自分のケースがどれに当たるかを照らし合わせると早いです。

  • 転送先が転送元に戻る相互リダイレクト(A→B かつ B→A)
  • 自分自身へ転送している(A→A)
  • 末尾スラッシュの有無を双方向に強制し合っている(/page と /page/ が互いに転送)
  • httpとhttpsの間で行き来している(http→https の一方で https→http が残っている)
  • wwwあり・なしの正規化が両方向に効いてしまっている
  • HTMLのmeta refreshやJSの location 書き換えが、同じURLへ繰り返し飛ばしている

症状別チェック表

リダイレクトループが起きるときの原因と対処は、症状を分けずに直そうとすると原因探しが長引きます。まず「自分だけで起きるのか」「全員で起きるのか」「特定ブラウザだけか」「差し替え後だけか」を切り分けます。

確認順序を固定すると、相対パス、ファイル名、キャッシュ、認証、外部読み込みのどこで止まっているかが見えます。修正後はローカル確認だけで終わらせず、実際の共有URLで再表示して、相手と同じ条件で直ったことを確認します。

  • 自分だけ表示されない: キャッシュ、ログイン状態、ブラウザ拡張、端末幅を確認する
  • 全員で表示されない: ファイル構成、相対パス、大文字小文字、アップロード漏れを見る
  • 一部だけ崩れる: CSS/画像/JSごとに読み込みエラーを分ける
  • 差し替え後だけ古い: URL、キャッシュ、更新対象ファイルの取り違えを確認する

切り分けの進め方

実際の調査は次の順で進めると、原因の場所を絞り込めます。

  1. ブラウザの開発者ツールのネットワークタブを開き、どのURLからどのURLへ301/302が連続しているかを確認する
  2. 転送の鎖をたどり、どこで元のURLに戻っているか(ループの折り返し点)を特定する
  3. サーバーやホスティングのリダイレクト設定で、対象のルールが双方向になっていないか確認する
  4. 末尾スラッシュ・http/https・wwwの正規化が一方向だけになるよう整える
  5. HTMLのmeta refreshやJSの location 代入が残っていないか調べ、不要なら外す

静的なHTMLで起きる場合

サーバー設定が絡まない静的なHTMLでも、ループは起こり得ます。typ的なのは、headに meta http-equiv="refresh" を入れて別ページへ飛ばしているのに、飛ばし先が再び同じ仕組みで戻ってくるケースや、JavaScriptで window.location を条件なしに書き換えてしまっているケースです。

この種のループはHTMLやJSを読めば原因が見えます。リダイレクトの起点になっている記述を探し、本当に転送が必要かを見直してください。確認段階のページなら、不要な自動転送はいったん外して素のまま表示するほうがトラブルが減ります。

直したページを安全に共有する

リダイレクト設定はサーバー環境ごとに挙動が変わるため、自分の手元では再現しないループが、別の環境で出ることがあります。直したHTMLを実際の共有環境で開いて確かめると確実です。

ギガサイト便はHTMLやZIPをドロップするだけで 〇〇.giga-site.com 形式の共有URLを発行し、HTTPSは自動で付きます。サーバー側の複雑なリダイレクト設定を自分で組まずに表示確認ができるので、まずページ単体が正しく開くかを切り分けたいときに役立ちます。直したら同じURLのまま差し替えて再確認できます。

よくある質問

ERR_TOO_MANY_REDIRECTS は何を意味していますか

ブラウザがリダイレクトを一定回数までたどっても最終ページに到達できず、無限ループとみなして転送を打ち切ったことを示します。設定のどこかで転送が元に戻っているサインです。

ループの折り返し点を見つけるには

開発者ツールのネットワークタブで、301や302のステータスが連続している箇所を追います。転送先のURLが、すでに通ったURLに戻っているところがループの折り返し点です。

http/httpsやwww有無の正規化でループするのはなぜですか

正規化ルールが双方向に効いていると、httpsへ寄せた直後にhttpへ戻す、あるいはwwwを付けた直後に外す、という往復が起き続けます。各正規化は必ず一方向だけになるよう設定します。

静的HTMLのリダイレクトループはどう直しますか

headのmeta refreshやJSのlocation書き換えが起点であることが多いです。それらの記述を探し、転送が本当に必要かを見直します。確認段階では不要な自動転送を外し、素のまま表示するのが安全です。

原因が分からないときはどこから確認すべきですか?

まず自分だけの問題か全員の問題かを分けます。次にシークレットウィンドウ、別ブラウザ、スマホで確認し、ファイル構成・相対パス・キャッシュ・認証設定を順に見ます。

関連記事

トラブルシュート

公開後にJavaScriptが動かないときの原因と直し方

ローカルでは動いていたボタンやアニメーションが公開後に反応しなくなった方向け。JavaScriptが止まる主な原因をファイルパスや読み込み順の観点で切り分け、自分で直せるかどうかを判断できます。

5分で読める
トラブルシュート

公開後に動画が再生されないときの対処

デモページや資料に埋め込んだ動画が公開後に再生されなくなった方向け。動画ファイルの添付漏れ・パスのズレ・ブラウザの自動再生制限を症状ごとに切り分け、自分でできる確認と対処を把握できます。

4分で読める
トラブルシュート

公開したHTMLのフォームが送信できないときの対処

問い合わせフォームやアンケートの送信ボタンが押せない・エラーになる方向け。静的ファイル公開ではフォームの動作に制約がある理由を理解し、外部サービス連携などの現実的な解決策を選べるようになります。

5分で読める
トラブルシュート

iframeが表示されないときの原因と対処

地図や外部コンテンツをiframeで埋め込んだのに公開後に枠が空白になった方向け。表示許可・HTTPSとHTTPの混在・相対パスのズレを症状ごとに切り分け、適切な対処を選べるようになります。

4分で読める
トラブルシュート

外部CDNのCSS・JSが読み込めないときの対処

CDNからCSSやJSを読み込む構成にしたらデザインが崩れて機能が動かなくなった方向け。URLの誤りやHTTPSの混在・バージョン指定の問題を原因ごとに整理し、確認と修正の手順を把握できます。

5分で読める
トラブルシュート

スマホだけ表示が崩れるときの原因と直し方

パソコンでは正常なのにスマホで開くと文字が小さすぎたりレイアウトが崩れたりして困っている方向け。viewportの指定漏れや固定幅指定が原因かどうかを症状から切り分け、HTMLとCSSの修正ポイントを確認できます。

4分で読める
「トラブルシュート」の記事をもっと見る →