Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

ERR_TOO_MANY_REDIRECTS

最終更新 Markdown で表示Agent セットアップ

Cloudflare に 新しいドメインを追加 したあと、訪問者のブラウザに ERR_TOO_MANY_REDIRECTSThe page isn’t redirecting properly が表示されることがあります。

このエラーは、訪問者がリダイレクトループに入ったときに発生します。

flowchart LR
accTitle: リダイレクトループの図
A[<code>http://</code><code>example.com</code> へのリクエスト] --> B[<code>https://</code><code>example.com</code> へリダイレクト]
B --> C[<code>http://</code><code>example.com</code> へリダイレクト]
C --> B
subgraph リダイレクトループ
B
C
end

よくある原因は次のとおりです。


暗号化モードの設定ミス

ドメインの SSL/TLS 暗号化モード は、Cloudflare がオリジンサーバーへどう接続するかと、オリジンが提示する SSL 証明書をどう検証するかを制御します。

Cloudflare 側の値とオリジン Web サーバー側の設定が矛盾すると、この設定がリダイレクトループの原因になります。

Flexible 暗号化モード

ドメインの暗号化モードが Flexible のとき、Cloudflare はオリジンサーバーへ HTTP で暗号化なしのリクエストを送ります。

オリジンサーバーが HTTP リクエストをすべて HTTPS へ自動リダイレクトすると、リダイレクトループが発生します。

flowchart TD
accTitle: Flexible モードのリダイレクトループの図
A[<code>https://</code><code>example.com</code> へのリクエスト] --> B[暗号化モードが <code>http://</code><code>example.com</code> へリダイレクト]
B --> C[オリジンサーバーが <code>https://</code><code>example.com</code> へリダイレクト]
C --> B
subgraph Cloudflare
B
end
subgraph オリジンサーバー
C
end

対処するには、オリジンサーバーから HTTPS リダイレクトを削除するか、SSL/TLS 暗号化モードを Full 以上に変更します(オリジンサーバーに SSL 証明書の設定が必要です)。オリジンでリダイレクトを設定せずに Cloudflare エッジで HTTPS を強制する方法は、HTTPS 接続を強制する を参照してください。

Full または Full (strict) 暗号化モード

ドメインの暗号化モードが Full または Full (strict) のとき、Cloudflare はオリジンサーバーへ HTTPS で暗号化リクエストを送ります。

オリジンサーバーが HTTPS リクエストをすべて HTTP へ自動リダイレクトすると、リダイレクトループが発生します。

flowchart TD
accTitle: Full または Full (strict) モードのリダイレクトループの図
A[<code>http://</code><code>example.com</code> へのリクエスト] --> B[暗号化モードが <code>https://</code><code>example.com</code> へリダイレクト]
B --> C[オリジンサーバーが <code>http://</code><code>example.com</code> へリダイレクト]
C --> B
subgraph Cloudflare
B
end
subgraph オリジンサーバー
C
end

対処するには、オリジンサーバーから HTTP リダイレクトを削除します。


エッジ証明書の設定

Always Use HTTPS

ドメインで Always Use HTTPS が有効な場合、Cloudflare はアプリケーション内のすべてのサブドメインとホストについて、http リクエストを https へリダイレクトします。

オリジンサーバーが HTTPS リクエストをすべて HTTP へ自動リダイレクトすると、リダイレクトループが発生します。

flowchart TD
accTitle: Always Use HTTPS のリダイレクトループの図
A[<code>http://</code><code>example.com</code> へのリクエスト] --> B[Always Use HTTPS が <code>https://</code><code>example.com</code> へリダイレクト]
B --> C[オリジンサーバーが <code>http://</code><code>example.com</code> へリダイレクト]
C --> B
subgraph Cloudflare
B
end
subgraph オリジンサーバー
C
end

対処するには、オリジンサーバーから HTTPS リダイレクトを削除するか、Always Use HTTPS を無効 にします。

HSTS

ドメインで HTTP Strict Transport Security(HSTS) が有効な場合、Cloudflare は対応ブラウザに対し、http リンクを https リンクへ変換するよう指示します。

オリジンサーバーが HTTPS リクエストをすべて HTTP へ自動リダイレクトする場合、またはドメインの暗号化モードが Off の場合、リダイレクトループが発生します。

flowchart TD
accTitle: HTTP Strict Transport Security のリダイレクトループの図
A[<code>https://</code><code>example.com</code> へのリクエスト] --> B[暗号化モードが <code>http://</code><code>example.com</code> へリダイレクト]
B --> C[HSTS が <code>https://</code><code>example.com</code> へリダイレクト]
C --> B
C --> D[オリジンサーバーが <code>http://</code><code>example.com</code> へリダイレクト]
D --> C
subgraph Cloudflare
B
C
end
subgraph オリジンサーバー
D
end

対処するには、オリジンサーバーから HTTPS リダイレクトを削除し、ドメインの暗号化モードを Flexible 以上にします。

または、HTTP Strict Transport Security(HSTS) を無効 にします。


リダイレクトルール

矛盾する URL リダイレクトがある場合も、リダイレクトループが発生します。

flowchart TD
accTitle: リダイレクトルールのリダイレクトループの図
A[<code>https://</code><code>a.example.com</code> へのリクエスト] --> B[<code>http://</code><code>b.example.com</code> へリダイレクト]
B --> C[<code>https://</code><code>a.example.com</code> へリダイレクト]
C --> B
subgraph Cloudflare
B
C
end

対処するには、各種 リダイレクトルールPage Rules を見直し、ルール同士が矛盾していないことを確認します。

役に立ちましたか?