「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」エラー](https://kinsta.com/wp-content/uploads/2018/01/ERR_TOO_MANY_REDIRECTS-error-in-chrome.png)
(Chromeの「ERR_CACHE_MISS」エラーの解決方法はこちら)
Mozilla Firefox
Mozilla Firefoxでは、以下のように「ページの自動転送設定が正しくありません」と表示されます。
domain.com への接続中にエラーが発生しました。Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります
![Mozilla Firefoxの「ERR_TOO_MANY_REDIRECTS」エラー](https://kinsta.com/wp-content/uploads/2018/01/ERR_TOO_MANY_REDIRECTS-error-in-firefox.png)
Microsoft Edge
Microsoft Edgeでは、「このページは現在機能していません」と表示されます。
Domain.com へのリダイレクト回数が多すぎます
![Microsoft Edgeの「ERR_TOO_MANY_REDIRECTS」エラー](https://kinsta.com/wp-content/uploads/2018/01/ERR_TOO_MANY_REDIRECTS-error-in-edge.png)
Safari
Safariでは、「ページを開けません」というメッセージが表示されます。
“domain.com “を開こうとして多くのリダイレクトが発生しています。あるページへのリダイレクトが設定されているページを開いたときに、リダイレクト先のページから元のページにさらにリダイレクトが設定されている場合にこうした現象が起きる場合があります
![Safariの「ERR_TOO_MANY_REDIRECTS」エラー](https://kinsta.com/wp-content/uploads/2018/01/ERR_TOO_MANY_REDIRECTS-error-in-safari.png)
「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 settings Chromeの設定](https://kinsta.com/wp-content/uploads/2018/01/chrome-settings.png)
ステップ2
左側メニューから「プライバシーとセキュリティ」を選択し、「サードパーティ Cookie」をクリックします。
ステップ3
下にスクロールし、「すべてのCookieとサイトデータを表示」を開きます。
![Chrome see all cookies](https://kinsta.com/wp-content/uploads/2018/01/chrome-see-all-cookies-and-data.png)
ステップ4
エラーが発生しているサイト(ドメイン)を右上の検索フィールドで検索し、その右側に表示されるゴミ箱のアイコンをクリックして削除します。その後、そのサイトに再度アクセスしてみてください。
![Delete cookie in Chrome](https://kinsta.com/wp-content/uploads/2018/01/delete-cookie-in-chrome.png)
2. サーバー、プロキシ、ブラウザのキャッシュをクリアする
リダイレクトループはキャッシュされる可能性のあるレスポンスであるため、WordPressサイト、サーバー、サードパーティのプロキシサービス、そしてブラウザのキャッシュもクリアしてみてください。
WordPressサイトのキャッシュをクリアする
リダイレクトループの種類によっては、WordPressの管理画面にアクセスできる場合があります。管理画面を開ける場合は、キャッシュプラグインの設定から簡単にキャッシュをクリアできます。主要のプラグインを使ってWordPressのキャッシュをクリアする方法は、以下をご覧ください。
Kinstaのお客様は、WordPress管理画面のツールバーからすぐにキャッシュをクリアすることができます。
![WordPressの管理画面からKinstaのキャッシュをクリア](https://kinsta.com/wp-content/uploads/2018/01/clear-cache-from-wordpress-admin.png)
サーバーのキャッシュをクリアする
WordPress管理画面にアクセスできない場合、ご利用のホスティングアカウントからクリアできる可能性があります。
Kinstaのお客様は、MyKinstaでWordPressのキャッシュをクリアできます。以下の手順に従ってください。
- 左側メニューの「WordPressサイト」をクリック
- 該当のサイトを選択して「ツール」画面を開く
- 「サイトキャッシュ」セクションの「キャッシュをクリア」をクリック
![MyKinstaでキャッシュをクリア](https://kinsta.com/wp-content/uploads/2022/10/mykinsta-clear-cache.png)
プロキシキャッシュをクリアする
CloudflareやSucuriなどのサードパーティのリバースプロキシサービスを使用している場合は、そのキャッシュもクリアします。
Cloudflareの場合
Cloudflareの場合、管理画面にログイン後、「Caching」に移動して「すべてパージ」をクリックしてください。
![Cloudflareのキャッシュをクリア](https://kinsta.com/wp-content/uploads/2015/04/purge-cloudflare-cache.png)
Sucuriの場合
Sucuriの場合は、管理画面にログイン後、「Performance」に移動して「Clear Cache」をクリックすれば完了です。
![Sucuriのキャッシュをクリア](https://kinsta.com/wp-content/uploads/2018/01/clear-sucuri-cache.png)
ブラウザキャッシュをクリアする
ブラウザキャッシュに原因があるかどうかを確かめるには、キャッシュをクリアする前に、ブラウザをシークレットモードで開いてみてください。また、別のブラウザでも同じエラーが表示されるかどうかも確認しましょう。
![Chromeのシークレット ウィンドウを開く](https://kinsta.com/wp-content/uploads/2018/01/open-chrome-in-incognito-mode.png)
ブラウザキャッシュが原因であると判断した場合は、キャッシュをクリアしてください。各ブラウザでのクリア方法は以下をご覧ください。
- ページを強制再読み込みする方法(全ブラウザ共通)
- Google Chromeのキャッシュをクリアする方法
- Mozilla Firefoxのキャッシュをクリアする方法
- Safariのキャッシュをクリアする方法
- Microsoft Edgeのキャッシュをクリアする方法
- Operaのキャッシュをクリアする方法
3. リダイレクトループの原因を特定する
キャッシュをクリアしても問題が解決しない場合、リダイレクトループの原因を特定しましょう。これには、Kinstaの無料HTTPステータス&リダイレクトチェッカーが便利です(cURL経由も可)。
例えば、以下のサイトでは301リダイレクトが繰り返され、誤ったリダイレクトの大きな連鎖が発生しています。すべてのリダイレクトをチェックして、同じURLに転送されていないか、あるいはHTTPからHTTPSへのループなのかを判断します。
![リダイレクトループ](https://kinsta.com/wp-content/uploads/2018/01/too-many-redirects.png)
Chromeの拡張機能であるRedirect Pathも便利なツールで、サイト上(特定のURLやページ)で起こっているすべてのリダイレクトを確認できます。
![Redirect Path](https://kinsta.com/wp-content/uploads/2018/01/redirect-path-extension.png)
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サーバーテスト](https://kinsta.com/wp-content/uploads/2018/01/SSL-check.png)
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リダイレクトが行われています。
![Redirects 適切でないリダイレクト設定](https://kinsta.com/wp-content/uploads/2016/09/redirects-not-setup-correctly.png)
5. サードパーティサービスを確認する
「ERR_TOO_MANY_REDIRECTS」エラーは、Cloudflareのようなリバースプロキシサービスでもよく発生します。これは通常、Flexible SSL設定が有効になっていて、WordPressサーバーにSSL証明書がすでにインストールされている場合に見られます。この設定を選択すると、ホスティングサーバーへのリクエストはすべてHTTPで送信されます。ホスティングサーバーは、すでにHTTPからHTTPSにリダイレクトしている可能性が高く、これが原因でリダイレクトループが発生します。
これを解決するには、Cloudflare Crypto設定を「Full」または「Full(strict)」に変更してください。Kinstaのお客様は、Cloudflare SSL証明書をインストールする方法もご覧ください。
![Cloudflare full Cloudflare Crypto設定で「Full」を選択](https://kinsta.com/wp-content/uploads/2015/04/cloudflare-crypto-level-full.png)
「常にHTTPSを使用する」設定を選択すると、ループを生み出すことなくHTTPSにリダイレクトできます。Cloudflareでもう1つ気をつけたい点は、転送URLのリダイレクトルール。リダイレクトするURLと転送先が同じドメインにならないように注意してください。これがリダイレクトループの原因となり、影響を受けたURLは解決できなくなります。
StackPathを使用している場合は、「Origin Pull Protocol」という設定でHTTPSのみを選択してください。
Cloudflare DNSのみを使用する
プロキシ/WAFサービスではなく、CloudflareのDNSのみを使用したい場合は、DNSレコードが「DNS のみ」に設定されていることを確認してください。オレンジではなく、グレーの雲のアイコンが表示されます。これは、Cloudflare管理画面の「DNS」タブで設定可能です。
![Cloudflare DNSのみ使用](https://kinsta.com/wp-content/uploads/2018/01/cloudflare-dns-only.png)
6. WordPressの設定を確認する
WordPressの設定の確認箇所は2点あります。正しく設定されているか、誤ったドメインに紐付けていないか、不一致でないかをチェックしましょう。また、サイトの他の部分と一致する正しい接頭辞を使用していないことも考えられます。
- WordPress アドレス(URL)─ブログにアクセスするためのアドレス
- サイトアドレス(URL)─WordPressのコアファイルのアドレス
この2つのアドレスは、WordPressに独自のディレクトリを与えている場合を除いて、一致していなければなりません。
![WordPressのアドレス設定](https://kinsta.com/wp-content/uploads/2018/01/wordpress-address.png)
ほとんどの場合、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を変更](https://kinsta.com/wp-content/uploads/2017/04/change-wordpress-url-wp-config-php.png)
他にも、管理画面にアクセスせずに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フォルダの名前を変更](https://kinsta.com/wp-content/uploads/2018/01/sftp-rename-plugins-folder.png)
これでエラーが消えたら、各プラグインを1つずつテストしていきます。pluginsフォルダの名前を「plugins」に戻し、各プラグインの名前を同じように1つずつ変更しながら、サイトに再びエラーを引き起こすものを特定します。なお、これはステージングサイトで実行することをお勧めします。
8. サーバーのリダイレクト設定を確認する
サーバー上のHTTPからHTTPSへのリダイレクトに加えて、追加のリダイレクト設定に誤りがないかを確認することもお勧めします。例えば、301リダイレクトの設定が間違っていると、サイトがダウンする恐れがあります。通常、これはサーバーの設定ファイルで確認できます。
Apacheの.htaccessファイル
KinstaではNginxを使用していますが、Apacheを実行するWordPress専用サーバーをご利用の場合は、.htaccess
ファイルに間違ったルールが設定されている可能性があります。以下の手順に従って、ゼロから作り直しましょう。
まずは、FTPまたはSSHでサイトにログインし、バックアップのため、.htaccess
ファイル名を.htaccess_old
に変更します。
![.htaccessファイルの名前を変更](https://kinsta.com/wp-content/uploads/2017/12/rename-htaccess-file.png)
このファイルを再作成するには、通常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リダイレクト](https://kinsta.com/wp-content/uploads/2018/01/bad-301-redirect-1.png)
また、「リダイレクト元」と「リダイレクト先」の両方にロケーション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」エラーについてご質問がありましたら、以下のコメント欄よりお知らせください。
コメントを残す