「ERR_TOO_MANY_REDIRECTS」エラーに遭遇することはよくあること。
このエラーはサイトのリダイレクト設定に誤りがある、またはサードパーティサービスの設定が正しくない場合に発生します。解決方法はとてもシンプルです。
リダイレクトループを解決して、サイトを素早く復旧させる方法を早速見ていきましょう。
「ERR_TOO_MANY_REDIRECTS」エラーとは
「ERR_TOO_MANY_REDIRECTS」エラーは、そのメッセージが示す通り、何らかの原因でリダイレクトが多くなり、永遠にリダイレクトが繰り返される (リダイレクトループ)状況に陥っていることを意味します。
基本的に、サイトが正常に機能しなくなり(URL 1がURL 2に紐付き、URL 2がURL 1に紐づいている、またはドメインが何度もリダイレクトしているなど)、他の多くのエラーとは違って自然に解決することがありません。そのため、自分のサイトでこのエラーが発生したら、何かしらの操作が必要になります。
また、「request exceeded the limit of 10 internal redirects due to probable configuration error 」(設定のエラーに伴い、リクエストが10回の内部リダイレクトの制限を超えました)というエラーメッセージも表示されているかもしれません。
エラーコード
ERR_TOO_MANY_REDIRECTS
エラーの種類
ブラウザエラー/コードのエラー
エラーのバリエーション
This page isn’t working. domain.com redirected you too many times.(このページは動作していません。domain.com でリダイレクトが繰り返し行われました。)
The page isn’t redirecting properly(ページの自動転送設定が正しくありません)
This page isn’t working right now(このページは現在機能していません)
Safari Can’t Open the Page(ページを開けません)
エラーの原因
WordPressの設定、プラグインの誤操作
ブラウザキャッシュ、Cookieの問題
サードパーティーサービスの問題
HTTPSの設定に誤りがある
サーバーの設定に誤りがある
このエラーは、ブラウザごとに異なるメッセージが表示されます。
「ERR_TOO_MANY_REDIRECTS」エラーの見え方
このエラーには、ブラウザによって見え方が若干異なります。
Google Chrome
Google Chromeでは、このエラーは「ERR_TOO_MANY_REDIRECTS 」または「このウェブページにはリダイレクトループが含まれています 」と表示されます。
このページは動作していません。domain.com でリダイレクトが繰り返し行われました
Google Chromeの「ERR_TOO_MANY_REDIRECTS」エラー
(Chromeの「ERR_CACHE_MISS」エラーの解決方法はこちら )
Mozilla Firefox
Mozilla Firefoxでは、以下のように「ページの自動転送設定が正しくありません 」と表示されます。
domain.com への接続中にエラーが発生しました。Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります
Mozilla Firefoxの「ERR_TOO_MANY_REDIRECTS」エラー
Microsoft Edge
Microsoft Edgeでは、「このページは現在機能していません 」と表示されます。
Domain.com へのリダイレクト回数が多すぎます
Microsoft Edgeの「ERR_TOO_MANY_REDIRECTS」エラー
Safari
Safariでは、「ページを開けません 」というメッセージが表示されます。
“domain.com “を開こうとして多くのリダイレクトが発生しています。あるページへのリダイレクトが設定されているページを開いたときに、リダイレクト先のページから元のページにさらにリダイレクトが設定されている場合にこうした現象が起きる場合があります
Safariの「ERR_TOO_MANY_REDIRECTS」エラー
「ERR_TOO_MANY_REDIRECTS」エラーの原因
このエラーは、ブラウザが最初のページとリダイレクト先のページとの間の接続を確立できない場合に発生します。主な原因には、以下のようなものが挙げられます。
WordPressの設定ミス
WordPressプラグインの設定ミス
サーバー設定の誤り
HTTPS設定の誤り
ブラウザのキャッシュやCookieの問題
サードパーティサービス(CDNなど)の問題
不正なサイトまたはドメインの移行
「ERR_TOO_MANY_REDIRECTS」エラーの解決方法
ここからは、リダイレクトループの解決策および確認事項をご紹介します。特に一般的なものから順に見ていきましょう。
特定のサイトのCookieを削除する
サーバー、プロキシ、ブラウザのキャッシュをクリアする
リダイレクトループの原因を特定する
HTTPS設定を確認する
サードパーティサービスを確認する
WordPress設定を確認する
WordPressプラグインを一時的に無効にする
サーバーレベルのリダイレクトを確認する
1. 特定のサイトのCookieを削除する
GoogleやMozilla Firefoxでは、エラーメッセージとともにCookieの削除が推奨されます。Cookieには、「ERR_TOO_MANY_REDIRECTS」エラーの原因となるような、誤ったデータが含まれている可能性があります。このトラブルシューティングは、(自分のサイトではなく)訪問先のサイトでこのエラーに遭遇した際にも有効です。
Cookieはサイトでのログイン状態やその他の設定を保持するため、まずはエラーが発生しているサイトのCookieを削除してみます。特定のサイトのCookieのみ削除すれば、頻繁に訪問する他のサイトの設定に影響を与えることはありません。
Google Chromeでは、以下の手順で特定のサイトのCookieを削除することができます。
ステップ1
Google Chromeのウィンドウ右上にある3つの点をクリックし、「設定 」を開きます。
Chromeの設定
ステップ2
左側メニューから「プライバシーとセキュリティ 」を選択し、「サードパーティ Cookie 」をクリックします。
ステップ3
下にスクロールし、「すべてのCookieとサイトデータを表示 」を開きます。
クローム すべてのクッキーを見る
ステップ4
エラーが発生しているサイト(ドメイン)を右上の検索フィールドで検索し、その右側に表示されるゴミ箱のアイコンをクリックして削除します。その後、そのサイトに再度アクセスしてみてください。
ChromeでCookieを削除する
2. サーバー、プロキシ、ブラウザのキャッシュをクリアする
リダイレクトループはキャッシュされる可能性のあるレスポンスであるため、WordPressサイト、サーバー、サードパーティのプロキシサービス、そしてブラウザのキャッシュもクリアしてみてください。
WordPressサイトのキャッシュをクリアする
リダイレクトループの種類によっては、WordPressの管理画面にアクセスできる場合があります。管理画面を開ける場合は、キャッシュプラグインの設定から簡単にキャッシュをクリアできます。主要のプラグインを使ってWordPressのキャッシュをクリアする方法は、以下をご覧ください。
Kinstaのお客様は、WordPress管理画面のツールバーからすぐにキャッシュをクリア することができます。
WordPressの管理画面からKinstaのキャッシュをクリア
サーバーのキャッシュをクリアする
WordPress管理画面にアクセスできない 場合、ご利用のホスティングアカウントからクリアできる可能性があります。
Kinstaのお客様は、MyKinsta でWordPressのキャッシュをクリア できます。以下の手順に従ってください。
左側メニューの「WordPressサイト 」をクリック
該当のサイトを選択して「ツール 」画面を開く
「サイトキャッシュ」セクションの「キャッシュをクリア 」をクリック
MyKinstaでキャッシュをクリア
プロキシキャッシュをクリアする
Cloudflare やSucuriなどのサードパーティのリバースプロキシサービスを使用している場合は、そのキャッシュもクリアします。
Cloudflareの場合
Cloudflareの場合、管理画面にログイン後、「Caching 」に移動して「すべてパージ 」をクリックしてください。
Cloudflareのキャッシュをクリア
Sucuriの場合
Sucuriの場合は、管理画面にログイン後、「Performance 」に移動して「Clear Cache 」をクリックすれば完了です。
Sucuriのキャッシュをクリア
ブラウザキャッシュをクリアする
ブラウザキャッシュに原因があるかどうかを確かめるには、キャッシュをクリアする前に、ブラウザをシークレットモード で開いてみてください。また、別のブラウザでも同じエラーが表示されるかどうかも確認しましょう。
Chromeのシークレット ウィンドウを開く
ブラウザキャッシュが原因であると判断した場合は、キャッシュをクリアしてください。各ブラウザでのクリア方法は以下をご覧ください。
3. リダイレクトループの原因を特定する
キャッシュをクリアしても問題が解決しない場合、リダイレクトループの原因を特定しましょう。これには、Kinstaの無料HTTPステータス&リダイレクトチェッカー が便利です(cURL経由も可)。
例えば、以下のサイトでは301リダイレクトが繰り返され、誤ったリダイレクトの大きな連鎖が発生しています。すべてのリダイレクトをチェックして、同じURLに転送されていないか、あるいはHTTPからHTTPSへのループなのかを判断します。
リダイレクトループ
Chromeの拡張機能であるRedirect Path も便利なツールで、サイト上(特定のURLやページ)で起こっているすべてのリダイレクトを確認できます。
Redirect Path
4. HTTPS設定を確認する
HTTPSの設定も確認しましょう。「ERR_TOO_MANY_REDIRECTS」エラーは、HTTPSに切り替えた ばかりで、移行が完了していなかったり、何か誤った設定を行なったりしている場合によく発生します。
SSL証明書を導入してからリダイレクトを設定する
これは最もよくあるパターンで、SSL証明書をインストールせずにWordPressサイトにHTTPSリダイレクトを設定すると、即座にリダイレクトループを引き起こします。これを解決するには、WordPressサイトにSSL証明書をインストール してください。
また、SSLチェック も実行してみてください。SSL/TLS証明書 は、メインの証明書だけでなく、中間証明書(チェーン)もインストールし、適切に設定しなければなりません。
これには、Qualys SSL Labsの無料ツール がおすすめです。信頼性に優れており、Kinstaでも証明書の検証に利用しています。「Hostname」フィールドにドメインを貼り付けて、「Submit」をクリックするだけでOKです。必要に応じて、公開結果を非表示にすることもできます(「Do not show the results on the boards」にチェックを入れる)。結果が表示されるまでには、1〜2分かかることがあります。
Qualys SSL LabのSSLサーバーテスト
SSLプラグインを使用せず、ハードコーディングされたリンクを更新する
無料のSSLプラグインには、自動的にHTTPSにリダイレクトしてくれるReally Simple SSL などがあります。しかし、サードパーティのプラグインは常に互換性やその他の問題を引き起こす可能性があるため、長期的な解決策としては推奨されません。一時的な解決策としては有用ですが、ハードコーディングされたHTTPリンクの更新 が必要です。
WordPressで検索と置換を行う4つの方法はこちら でご紹介しています。Kinstaのお客様は、カスタマーサポートにご相談いただければ、作業を代行いたします。
サーバーのHTTPからHTTPSへのリダイレクトルールを確認する
サーバーのHTTPSリダイレクトルールに誤りがあることも考えられます。
NginxでHTTPをHTTPSにリダイレクトする
Nginxを実行 している場合、Nginxの設定ファイルに以下のコードを追加して、HTTPSリダイレクトを設定できます。Nginx上で動作するWordPressサイトにはこの方法が推奨されます。
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
.
KinstaではNginxを使用しており、お客様側で特別な操作は不要です。追加でリダイレクトが必要になる場合は、カスタマーサポート までその旨をご連絡いただければ、担当者がNginxの設定を更新します。
リダイレクトについては動画での解説もご用意しています 。
ApacheでHTTPをHTTPSにリダイレクトする
ウェブサーバーにApacheを使用 している場合、.htaccess
ファイル に以下のコードを貼り付けてください。Apache上で動作するWordPressサイトにはこの方法が推奨されます。
RewriteEngine On
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
HTTPSリダイレクトが多すぎないかを確認する
あるいは、単にHTTPSリダイレクトが多すぎるのかもしれません。Redirect Checker のようなツールを使って、リダイレクトの数をチェックしましょう。以下のスクリーンショットでは、正しく設定されていないリダイレクトが検出されており、wwwあり/なし両ドメインで重複したHTTPSリダイレクトが行われています。
適切でないリダイレクト設定
5. サードパーティサービスを確認する
「ERR_TOO_MANY_REDIRECTS」エラーは、Cloudflareのようなリバースプロキシサービス でもよく発生します。これは通常、Flexible SSL設定が有効になっていて、WordPressサーバーにSSL証明書がすでにインストールされている場合に見られます。この設定を選択すると、ホスティングサーバーへのリクエストはすべてHTTPで送信されます。ホスティングサーバーは、すでにHTTPからHTTPSにリダイレクトしている可能性が高く、これが原因でリダイレクトループが発生します。
これを解決するには、Cloudflare Crypto設定を「Full」または「Full(strict)」に変更してください。Kinstaのお客様は、Cloudflare SSL証明書をインストールする方法 もご覧ください。
Cloudflare Crypto設定で「Full」を選択
「常にHTTPSを使用する 」設定を選択すると、ループを生み出すことなくHTTPSにリダイレクトできます。Cloudflareでもう1つ気をつけたい点は、転送URLのリダイレクトルール 。リダイレクトするURLと転送先が同じドメインにならないように注意してください。これがリダイレクトループの原因となり、影響を受けたURLは解決できなくなります。
StackPathを使用している場合は、「Origin Pull Protocol」という設定でHTTPSのみを選択してください。
Cloudflare DNSのみを使用する
プロキシ/WAFサービスではなく、CloudflareのDNSのみを使用したい場合は、DNSレコードが「DNS のみ」に設定されていることを確認してください。オレンジではなく、グレーの雲のアイコンが表示されます。これは、Cloudflare管理画面の「DNS」タブで設定可能です。
Cloudflare DNSのみ使用
6. WordPressの設定を確認する
WordPressの設定の確認箇所は2点あります。正しく設定されているか、誤ったドメインに紐付けていないか、不一致でないかをチェックしましょう。また、サイトの他の部分と一致する正しい接頭辞を使用していないことも考えられます。
WordPress アドレス(URL) ─ブログにアクセスするためのアドレス
サイトアドレス(URL) ─WordPressのコアファイルのアドレス
この2つのアドレスは、WordPressに独自のディレクトリを与えている 場合を除いて、一致していなければなりません。
WordPressのアドレス設定
ほとんどの場合、WordPressの管理画面にアクセスすることはできないため、wp-config.phpファイルを編集して、設定を上書き します。
wp-config.phpファイルは、通常WordPressサイトのルートにあり、SSH、WP-CLI、またはFTP経由でアクセス 可能です。WP_HOMEとWP_SITEURLをハードコーディングするには、次のコードをファイルの一番上に貼り付けてください。
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
すると、wp-config.phpファイルは以下のようになります。
wp-config.phpファイルでWordPressのURLを変更
他にも、管理画面にアクセスせずにWordPressのURLを変更するは2通りあります。
設定を終えたらサイトに再度アクセスし、リダイレクトループが解決しているかを確認しましょう。
マルチサイト
マルチサイト でドメインを変更する場合は、wp_blogs
テーブルも確認してください。誤った検索と置換によって、メインサイトとサブサイトが一致しておらず、リダイレクトループが発生している可能性があります。
各サブサイトには、wp_blogs
テーブルのblog_id
に対応するテーブルセット、wp_#_options
があります。wp_#_options
テーブル(#はblog_id
に対応)に移動して、SITEURLとHOMEを変更してください。
7. WordPressプラグインを一時的に無効にする
今回のエラーに限らず、WordPressでは一時的にすべてのWordPressプラグインを無効 にすることで、簡単に問題を特定することができます。例えば、Redirection やYoast SEO(有料版)などのプラグインは、リダイレクトを実装 できます。このようなプラグインの設定や更新が、すでにサーバーに設定されているリダイレクトと衝突し、リダイレクトループを引き起こすことがあります。
プラグインを無効にしても、データが失われることはできません。WordPressの管理画面にアクセスできない可能性が高いため、サーバーにSFTP経由でログイン し、pluginsフォルダの名前を「plugins_old」などに変更してみてください。その後、サイトにアクセスし、エラーが解消されているかどうかを確認します。
SFTPでpluginsフォルダの名前を変更
これでエラーが消えたら、各プラグインを1つずつテストしていきます。pluginsフォルダの名前を「plugins」に戻し、各プラグインの名前を同じように1つずつ変更しながら、サイトに再びエラーを引き起こすものを特定します。なお、これはステージングサイト で実行することをお勧めします。
プラグインフォルダの名前を変更
8. サーバーのリダイレクト設定を確認する
サーバー上のHTTPからHTTPSへのリダイレクトに加えて、追加のリダイレクト設定に誤りがないかを確認することもお勧めします。例えば、301リダイレクトの設定が間違っていると、サイトがダウンする恐れがあります。通常、これはサーバーの設定ファイルで確認できます。
Apacheの.htaccessファイル
KinstaではNginxを使用していますが、Apacheを実行するWordPressホスティングをご利用の場合は、.htaccess
ファイルに間違ったルールが設定されている可能性があります。以下の手順に従って、ゼロから作り直しましょう。
まずは、FTP またはSSHでサイトにログイン し、バックアップのため、.htaccess
ファイル名を.htaccess_old
に変更します。
.htaccessファイルの名前を変更
このファイルを再作成するには、通常WordPressでパーマリンク を保存し直すだけでOKですが、「ERR_TOO_MANY_REDIRECTS」エラーが発生中の場合は、WordPressの管理画面にアクセスできない可能性が高いため、この方法は使えません。したがって、.htaccess
ファイルを新規作成し、以下の内容を貼り付けて、サーバーにアップロードしてください。以下はデフォルトの設定を使用しています。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
マルチサイト用のデフォルトの.htaccess
ファイルやその他の例については、WordPress Codex を参照してください。
Kinstaでは、電子書籍や動画でサイト管理に役立つ知識をご紹介しています。 WordPressサイト管理にまつわる60以上のヒントをまとめた電子書籍はこちら 。
Nginxの設定
Nginxの場合、ご利用のホスティング会社によって設定ファイルが多少異なるため、やや複雑になります。ホスティング会社に問い合わせ、リダイレクトループや過剰なリダイレクトを引き起こしている可能性のある誤りはないか、設定ファイルを確認してもらってください。
Kinstaをご利用であれば、まずリダイレクトツール で誤ったリダイレクトを設定していないかどうかを確認してみてください。以下は、リダイレクトループの原因となる、https://domain.com/
から同じページに戻るリダイレクトの例です。
誤った301リダイレクト
また、「リダイレクト元」と「リダイレクト先」の両方にロケーションURLが含まれている場合にも、リダイレクトループがよく発生します。
例えば、以下のような場合。
リダイレクト元 :^/blog/about
リダイレクト先 :https://domain.com/blog/about-me
これは、プロセスが^/blog/about
達すると、残りの部分-me
を無視して無限ループを引き起こすためです。したがって、文字列の終点と始点を指定しなければなりません。解決するには、以下のように変更します。
リダイレクト元 :^/blog/about$
リダイレクト先 :https://domain.com/blog/about-me
「$」がNginxに文字列が存在しその後何も続かない場合にのみ、リクエストを停止して一致させるように指示します。
よくわからない場合は、カスタマーサポート までお気軽にお問い合わせください。
リバースプロキシの設定ミス
「ERR_TOO_MANY_REDIRECTS」エラーのもう1つの主な原因は、リバースプロキシ にあります。リバースプロキシは非常に複雑な場合があり、設定を少しでも誤ればリダイレクトループを引き起こします。Kinstaのお客様は、カスタマーサポートまでご相談ください。
まとめ
リダイレクトループの追跡は時に厄介ですが、今回ご紹介したトラブルシューティングを実践すれば、解決の手がかりがみつかるはずです。「ERR_TOO_MANY_REDIRECTS」エラーについてご質問がありましたら、以下のコメント欄よりお知らせください。
あなたのサイト管理を、KinstaのWordPress専用マネージドホスティングで次のレベルに。Kinstaはスピード、セキュリティ、そして使いやすさを追求し構築されています。
MyKinstaで手間なく管理
専任の移行チームが無料サイト移行を担当
WordPressに精通したエンジニアが24時間年中無休でサポート
Google Cloudのプレミアムインフラ
Cloudflare統合による法人等級のセキュリティ
37のデータセンターを介し世界規模で配信
初回1ヶ月無料 でご利用可能!
Brian Jackson
Brianの最大の情熱の一つは10年以上使用してきたWordPressです。複数のプレミアムプラグインさえ開発しています。Brianの趣味はブログや映画やハイキングなどです。TwitterでBrian とつながりましょう。
コメントを残す