EASYBOT GUIDE
Cloudflare利用時のERR_TOO_MANY_REDIRECTSを解消する方法
Cloudflareとオリジン間のHTTPS設定が原因で起きるリダイレクトループを、SSLモード、プロキシ、転送設定から解決します。
ERR_TOO_MANY_REDIRECTSは、ブラウザがリダイレクト先をたどり続けても最終ページへ到達できない状態です。Cloudflareとオリジンが別々にHTTPS転送を行う設定や、Flexible SSLが原因になることがあります。
転送経路を確認
HTTPからHTTPS、wwwからルートなど、どのURL間で転送を繰り返しているか確認します。ブラウザのキャッシュだけでなくcurlのLocationヘッダーも調べます。
- 最初にアクセスしたURLと最終Locationを記録する
- www有無とHTTP/HTTPSの組み合わせを試す
- サーバーログで同じパスの往復を確認する
Cloudflare SSLモード
Flexibleでは利用者からCloudflareまではHTTPSでも、CloudflareからオリジンへHTTPで接続します。オリジンが常にHTTPSへ転送すると往復することがあるため、オリジン証明書を設定してFull (strict)を検討します。
- CloudflareのSSL/TLSモードを確認する
- オリジン証明書の有効性とホスト名を確認する
- HTTPS接続がオリジンまで通ることを確かめる
アプリのHTTPS認識
リバースプロキシ配下でアプリが元のHTTPSを認識できず、HTTPへ戻そうとする場合があります。信頼するプロキシ設定とForwardedヘッダーを確認します。
- 信頼するプロキシの範囲を限定する
- X-Forwarded-Protoの受け渡しを確認する
- アプリの公開URL設定を正規ホストへ合わせる
ルールを一つに整理
Cloudflare、Caddy/Nginx、アプリそれぞれで同じ正規化ルールを重ねないようにします。修正後はCookieを消すかプライベートウィンドウで試します。
- HTTPSと正規ホストへの転送担当を決める
- 重複したPage Ruleやアプリ設定を確認する
- 変更後に301/308の経路が一度で終わるか確認する