ERR_TOO_MANY_REDIRECTS

結論
`ERR_TOO_MANY_REDIRECTS` は、要求したページに到達できず、ブラウザーがリダイレクトループに陥っていることを意味します。よくある原因には、HTTP/HTTPS または www/非 www のルール競合、CDN の SSL モードの不一致、古いリダイレクトキャッシュ、プロキシ経由で転送された HTTPS をアプリケーションが認識できないことなどがあります。まず `Location` ヘッダーを追跡し、競合しているレイヤーを修正してから、新しいヘッダーで再テストしてください。
要点
- 設定を変更する前に、リダイレクトチェーン全体を追跡してください。繰り返される
Locationヘッダーから、どのレイヤーがリクエストを行き来させているかが分かることが多いです。 - CDN が HTTPS を終端している場合は、CDN とオリジンの接続モードが一致していることを確認してください。Cloudflare の Flexible モードは、オリジンが HTTPS を強制するとループすることがあります。
- 正規ホスト名を www または非 www のどちらか一方に決め、CDN、Web サーバー、CMS、プラグインにある重複または相反するリダイレクトを削除してください。
- リダイレクト設定を変更した後は、関連するキャッシュを削除し、プライベートウィンドウまたは新しいコマンドラインリクエストで再テストしてください。
- ログインユーザーにだけループが発生する場合は、サーバーのリダイレクトだけでなく、Cookie、セッション設定、アプリケーションの HTTPS またはプロキシ検出も確認してください。
Site Administrator
このエラーの意味と見分け方
- ブラウザーに「このページは動作していません — [domain] でリダイレクトが多すぎます」またはエラーコード
ERR_TOO_MANY_REDIRECTSが表示されます。 - ブラウザーが読み込みを停止するまで、アドレスバーが HTTP と HTTPS の間、または www と非 www のホスト名の間で繰り返し切り替わります。
- サイト全体で発生する場合もあれば、1つの URL、管理画面、ログインセッション、特定のデバイスだけに限られる場合もあります。
- HTTPS の有効化、CDN やリバースプロキシの追加、正規ホスト名の変更、リダイレクトまたは SSL プラグインのインストール後に発生することがよくあります。
- 認証やセッションの処理が関係している場合、Cookie を削除すると一時的に挙動が変わることがありますが、サーバー側のリダイレクト競合は解消されません。
可能性の高い順の主な原因
- HTTP/HTTPS ルールの競合 — あるレイヤーが HTTP を HTTPS にリダイレクトする一方、別のレイヤーが誤って HTTPS を HTTP に戻している状態です。プロキシまたは CDN が TLS を終端しているものの、オリジンが元のリクエストが安全な接続だったことを認識できない場合によく発生します。
- CDN の SSL/TLS モードの不一致 — CDN がオリジンへの接続に HTTP を使用している一方、オリジンが HTTPS を強制している場合があります。オリジンは HTTPS にリダイレクトしますが、CDN が HTTP でのオリジンリクエストを繰り返すため、ループが発生します。
- www と非 www の正規化ルールの競合 — CDN、Web サーバー、CMS、プラグインが、どのホスト名を正規とするかで一致していない可能性があります。
- プロキシまたは転送プロトコルの処理が不適切 — アプリケーションが設定済みのプロキシを信頼していない、または
X-Forwarded-Protoなどのヘッダーを正しく処理していないため、安全なリクエストを繰り返し HTTP として扱っている可能性があります。 - 古いリダイレクトのキャッシュ — ブラウザー、CDN、リバースプロキシ、ページキャッシュが、設定を修正する前のリダイレクトをまだ配信している可能性があります。
- アプリケーションまたはプラグインのルール重複 — SSL 強制、ログイン、メンテナンス、リダイレクト用のプラグインが、サーバーレベルのルールと競合している可能性があります。
- Cookie またはセッション設定の問題 —
Secure、ドメイン、パスの設定が正しくないと、一部のユーザー、特にログイン中の訪問者にだけ認証リダイレクトが発生することがあります。
修正方法
1. まずリダイレクトチェーンを取得する
ターミナルから読み取り専用のリクエストを実行します。プレースホルダーは対象のホスト名に置き換えてください。
curl -IL https://[your-hostname]このコマンドはヘッダーを取得し、リダイレクトを追跡します。すべての Location: 値と HTTP ステータスコードを記録してください。問題が発生する正確な URL、HTTP 版、関連する場合は www と非 www の両方をテストします。ブラウザーの Network パネルでも同様の情報を確認できます。
次のようなパターンを探してください。
- HTTPS → HTTP → HTTPS
- 非 www → www → 非 www
- 1つの URL が自分自身へ繰り返しリダイレクトされる
- ログイン URL または正規 URL へリダイレクトした直後に、元へ戻る
最初からキャッシュを削除したり、複数の設定を同時に変更したりしないでください。チェーンを確認すると、どのレイヤーを調べるべきかを特定できます。
2. HTTP/HTTPS または CDN のループを修正する
CDN またはリバースプロキシが公開 HTTPS 接続を処理している場合は、その SSL/TLS モードと、オリジンの証明書および HTTPS 設定を確認します。CDN からオリジンへの接続モードは、オリジンがサポートする構成と一致している必要があります。Cloudflare を使用している場合、オリジンが HTTPS を正しくサポートし、オリジン自体が HTTPS を強制するなら、通常は Flexible ではなく Full または Full (strict) が必要です。
モードを変更する前に、CDN を変更する権限があること、また厳格な証明書検証を使用する場合は、オリジンにホスト名用の有効な証明書があることを確認してください。CDN の TLS 設定を変更すると本番トラフィックに影響する可能性があるため、承認済みの変更手順またはメンテナンスウィンドウの要件に従ってください。
3. プロキシ経由の HTTPS 検出を正しく設定する
プロキシの背後で動作するアプリケーションが HTTPS を強制している場合は、アプリケーションまたはフレームワークが意図したプロキシを信頼し、転送されたプロトコルを認識できるように設定します。プラットフォームによって、設定名は trust proxy、trusted proxies、force-SSL などです。
転送プロトコルのヘッダーは、既知の管理下にあるプロキシ経路からのものだけを信頼してください。直接公開されたオリジンで、クライアントが送信したヘッダーを無条件に信頼しないでください。正しい設定についてプラットフォームのドキュメントを確認し、リダイレクトチェーンを再テストします。
4. www と非 www の不一致を解消する
正規ホスト名を1つ選び、その内容を文書化します。CDN、Web サーバー設定、該当する場合は .htaccess ルール、CMS の URL 設定、リダイレクトプラグインを確認してください。
正規ホスト名へのリダイレクトは1つのルールを正とします。たとえば非 www から www、または www から非 www とし、重複または相反するルールを削除します。変更後は HTTP と HTTPS のすべてのバリエーションを確認してください。HTTPS が正しく設定されていても、正規 URL の設定が Web サーバーの転送先と異なると、ループが再発する可能性があります。
5. アプリケーション、ログイン、Cookie の挙動を確認する
匿名ユーザーはページを読み込めるのにログインユーザーが読み込めない場合は、権限のあるテストアカウントまたはプライベートウィンドウを使い、セッション Cookie の有無でリダイレクトチェーンを比較します。force-SSL、ログイン、会員、リダイレクト用プラグインと、アプリケーションに設定されたサイト URL を確認してください。
セッション Cookie が、選択した HTTPS ホスト名に対して正しい Secure 属性、ドメイン、パスを使用していることを確認します。変更管理プロセスの下で、疑わしいプラグインを一度に1つずつ無効化または変更してください。ロールバック計画なしに、本番サイトの認証またはセキュリティ制御を削除しないでください。
6. 古いリダイレクトを削除して再テストする
設定を修正した後、権限がある場合は、関連する CDN、リバースプロキシ、ページキャッシュのエントリを削除します。ブラウザーのリダイレクトも残る可能性があるため、curl、プライベートウィンドウ、必要に応じて別のネットワークまたはデバイスで再テストしてください。
成功したテストでは、Location の繰り返しシーケンスなしに目的のページへ到達します。ホームページだけでなく、正規ホスト名、HTTP から HTTPS への挙動、ログインフロー、代表的な内部 URL を確認してください。
予防と修正確認
- CDN、リバースプロキシ、CMS プラグイン、サーバールールを追加する前に、正規ホスト名と意図する HTTP から HTTPS への挙動を文書化してください。
- 可能な限り、各リダイレクトの判断を1つのレイヤーで正として管理し、他のレイヤーが相反するルールを発行しないようにしてください。
- サイトをプロキシの背後に置く場合は、信頼するプロキシと転送プロトコルの処理を意図的に設定し、クライアントが送信した転送ヘッダーを無差別に受け入れないでください。
- HTTPS、ホスト名、CDN、CMS、プラグインを変更した後は、ユーザーがアクセスする正確な URL を使ってリダイレクトチェーン全体をテストしてください。
- 対応している場合は、デプロイ時の確認に匿名、ログイン中、www、非 www、HTTP、HTTPS のテストを含めてください。
- リダイレクトを変更した後は、関連するキャッシュを削除またはバージョン更新し、プライベートウィンドウまたはクリーンなクライアントから確認してください。
外部の助けが必要なタイミング
目に見える設定に存在しないリダイレクトがチェーンに含まれている場合、プロバイダーのエッジでだけ変化する場合、またはオリジンのルールを修正してキャッシュを削除しても解消しない場合は、ホスティング、CDN、またはプラットフォームのプロバイダーに問い合わせてください。新しいリクエストから取得した、問題が発生する正確な URL、タイムスタンプ、ステータスコード、Location のシーケンスを提供します。診断出力を共有する前に、Cookie、Authorization ヘッダー、トークン、その他の個人情報や機密情報を削除してください。
よくある質問
Cloudflare Flexible SSL は ERR_TOO_MANY_REDIRECTS の原因になりますか?
はい。Cloudflare が HTTP でオリジンに接続し、オリジンがすべてのリクエストに HTTPS を強制すると、オリジンがリダイレクトを繰り返す可能性があります。オリジンの HTTPS 対応を確認し、それに一致する CDN の SSL/TLS モードを使用してください。HTTPS オリジンが正しく設定されている場合、Cloudflare では通常 Full または Full (strict) モードが該当します。
HTTPS リダイレクトは CDN、Web サーバー、アプリケーションのどこで設定すべきですか?
重要なのは、相反するルールがない一貫した設計にすることです。公開 HTTP から HTTPS へのリダイレクトを担当するレイヤーを1つ決め、CDN、Web サーバー、CMS、プラグインがその結果に同意するようにしてください。プロキシの背後にあるアプリケーションは、元の HTTPS リクエストも正しく認識する必要があります。
なぜログインユーザーにだけエラーが発生するのですか?
ログインやセッションの処理は、検出されたスキーム、設定されたサイト URL、Cookie のスコープに基づいてリダイレクトすることがあります。匿名リクエストと認証済みリクエストのチェーンを比較し、force-SSL 設定、信頼するプロキシの設定、Cookie の Secure、ドメイン、パス属性を確認してください。
Cookie を削除するとエラーが直ったように見えることがあるのはなぜですか?
Cookie には、匿名訪問者では利用できないリダイレクト経路を発生させるセッションまたは認証状態が保存されていることがあります。Cookie を削除するとそのブラウザーでは症状がなくなる可能性がありますが、他のユーザーでもループが再発するなら、サーバー、CDN、またはアプリケーションのルールを修正する必要があります。
リダイレクトループの原因となっているルールを見つけるにはどうすればよいですか?
curl -IL https://[your-hostname] のような読み取り専用のリクエストで、問題が発生する正確な URL のレスポンスヘッダーチェーン全体を取得します。各 Location ヘッダーとステータスコードを、CDN、サーバー、CMS、プラグインの設定と比較し、宛先を変更しているレイヤーを特定してください。
関連ドキュメント
実装の詳細については、使用中の CDN またはリバースプロキシ、オリジンのリクエストを処理する Web サーバー、CMS またはフレームワークの信頼するプロキシと HTTPS 設定のドキュメントを参照してください。また、使用しているリダイレクト、SSL、キャッシュ、認証プラグインのドキュメントも確認してください。SSL/TLS モード、転送プロトコルのヘッダー、キャッシュのパージ、証明書の検証については、プロバイダーのドキュメントが特に役立ちます。