Kinstaでは様々なエラーを見たことがありますが、その中にもERR_TOO_MANY_REDIRECTS(リダイレクトループという)はよく発生するものです。このエラーは一般的にWordPressウェブサイトの最近の変更後に、またはサーバー上のリダイレクトの設定ミス及びサードパーティサービスの設定ミスを理由に発生します。しかし、割と対策しやすいエラーである為、ご心配は必要ありません。対策方法については、下記の推奨事項をご確認ください。
「ERR_TOO_MANY_REDIRECTS」エラーとは?
ERR_TOO_MANY_REDIRECTS(日本語訳:リダイレクトが多すぎます)の理由は、ウェブサイトが無限のリダイレクトループに入ってしまったことです。ウェブサイトが停止しています。(つまり、URL 1がURL 2を指し、URL 2がURL 1を指しているか、リダイレクトが繰り返し行われるかのどちらかです。)他のエラーとは異なり、このエラーは自然に回復しない為、対策しないといけません。
エラーメッセージの表現の仕方は下記の通り、各ブラウザによって違います。
Google Chrome
Google Chromeでは、「ERR_TOO_MANY_REDIRECTS 」(以下を参照)または「このウェブページにはリダイレクト ループが含まれています」と表示されます。
このページは動作していません。domain.comでリダイレクトが繰り返し行われました。

Mozilla Firefox
Mozilla Firefoxでは、「ページの自動転送設定が正しくありません 」(以下を参照)と表示されます。
domain.comへの接続中にエラーが発生しました。この問題は、クッキーの受け入れを無効にするか拒否することによって引き起こされることがあります。

Microsoft Edge
Microsoft Edgeでは、「このページは表示できません 」(以下を参照)だけが表示されます。
リダイレクトが多すぎました。

Safari
Safariでは、「ページを開けません」と表示されます。(以下を参照)
domain.comを開こうとして多くのリダイレクトが発生しています。あるこれはのリダイレクトが設定されているページを開いたときに、、元のページ先のページから元のを開くにさらにリダイレクトが設定されている場合にこうした現象が起きる場合があります。

次に本エラーが出たときの対策をご紹介します。(よく発生する原因の順で述べます。)
- 特定のウェブサイトのクッキーを消去する
- WordPressウェブサイト、サーバー、プロクシとブラウザのキャッシュをクリアする
- リダイレクトループの原因を特定する
- HTTPS設定を確認する
- サードパーティーサービスを確認する
- WordPressウェブサイトの設定を確認する
- 一時的にWordPressプラグインを無効にする
- サーバーのリダイレクトを確認する
特定のウェブサイトのクッキーを消去する
GoogleでもMozillaでも、「クッキーを消去してみてください」という推進事項がエラーの直下に表示されます。クッキーには、ERR_TOO_MANY_REDIRECTSエラーの原因となるデータが含まれていることがあります。この対策は自分のウェブサイトだけでなく、どのウェブサイトでも行うことができます。
クッキーがすべてのウェブサイトの「ログイン」状況またはその他の設定の情報を保持しているため、不具合が発生しているウェブサイトのみでクッキーを消去した方がよいでしょう。そうすると、頻繁に訪れる他のウェブサイトには影響しません。
Google Chromeで特定のウェブサイトのクッキーを消去するには、次の手順に従ってください。
ステップ1
Google Chromeでは、右上の3つの点をクリックします。 次に、「設定」をクリックします。

ステップ2
スクロールダウンし、「詳細設定」をクリックします。

ステップ3
「コンテンツの設定」をクリックします。

ステップ4
「クッキー」をクリックします。

ステップ5
「すべてのCookieとサイトデータ」をクリックします。

ステップ6
ERR_TOO_MANY_REDIRECTSエラーが発生するサイト(ドメイン)のクッキーを探し、そのドメインに対するコンピューターに保存されているクッキーを消去できます。その後、サイトに再度アクセスしてみてください。

サーバー、プロクシとブラウザのキャッシュをクリアする
リダイレクトループはキャッシュ可能なレスポンスである為、WordPressウェブサイト、サーバー、サードパーティプロキシサービス、必要に応じてブラウザさえのキャッシュをクリアした方がよいでしょう。
WordPressウェブサイトのキャッシュをクリアする
リダイレクトループの種類により、WordPress管理画面にアクセスできる可能性があります。アクセスできる場合には、キャッシングプラグインの設定画面で簡単にキャッシュをクリアすることができます。人気なプラグインそれぞれでWordPressのキャッシュをクリアする方法については下記をご参照ください。
Kinstaのお客様は、WordPressの管理ツールバーから簡単にキャッシュをクリアすることができます。

サーバーのキャッシュをクリアする
管理画面にアクセスできない場合には、WordPressホスティング会社の多くは、WordPressウェブサイトのキャッシュをクリアできる独自のコントロールパネルツールがあります。
Kinstaのお客様は、MyKinstaダッシュボードからWordPressキャッシュを手動で消去することができます。 サイトを選択し、ツールをクリックし、「Clear Cache」(キャッシュをクリアする)ボタンをクリックするだけです。次に、リダイレクトループが消えたかを確認します。

プロキシのキャッシュをクリアする
CloudflareまたはSucuriなどのサードパーティのリバースプロキシサービスをご利用の方は、向こうのキャッシュもクリアした方がよいでしょう。
Cloudflare
Cloudflareのキャッシュをクリアするには、ダッシュボードにログインし、「Caching」(キャッシング)をクリックし、「Purge Everything」(すべてをクリアする)をクリックします。
Sucuri
Sucuriキャッシュを消去するには、ダッシュボードにログインし、「Performance」(パフォーマンス)にアクセスし、「Clear Cache」(キャッシュをクリアする)をクリックします。

ブラウザのキャッシュをクリアする
キャッシュをクリアせずにブラウザのキャッシュに原因があるかどうかを判断したい場合は、シークレットモードでブラウザを開くか別のブラウザを使ってERR_TOO_MANY_REDIRECTSエラーが表示されているかを確認してください。

ブラウザのキャッシュに原因があると判断した場合には、クリアすることができます。各ブラウザのキャッシュをクリアする方法については下記をご参照ください。
- すべてのブラウザで特定のページを強制更新する方法について
- Google Chromeでブラウザのキャッシュをクリアする方法について
- Mozilla Firefoxでブラウザのキャッシュをクリアする方法について
- Safariでブラウザのキャッシュをクリアする方法について
- Internet Explorerでブラウザのキャッシュをクリアする方法について
- Microsoft Edgeでブラウザのキャッシュをクリアする方法について
- Operaでブラウザのキャッシュをクリアする方法について
リダイレクトループの原因を特定する
キャッシュをクリアしてもリダイレクトループが消えない場合は、リダイレクトループの原因を特定する必要があります。無料のオンラインRedirect Checker toolは不具合の分析ができます。なお、分析はcURLを介して行うこともできます。
たとえば、以下のサイトでは繰り返し301リダイレクトが行われており、リダイレクトループが続いています。すべてのリダイレクトを確認することにより、ループバックするか、HTTPからHTTPSへのリダイレクトのループかを判断できます。(解決方法は後程述べます。)

ChromeのRedirect Path拡張機能は、ウェブサイトのすべてのリダイレクト(特定のURLまたはページ)についての情報を提供する為、非常に便利です。

HTTPS設定を確認する
次に確認するのはHTTPSの設定です。ERR_TOO_MANY_REDIRECTSが発生するのは、WordPressウェブサイトをHTTPSに移行した直後に発生するのはよくある話です。原因は不十分な設定または設定ミスです。
1. SSL証明書なしでHTTPSを強制しないこと
SSL証明書なしでHTTPSを強制することは本エラーの最も一般的な原因です。SSL証明書をインストールせずに、WordPressウェブサイトをHTTPS経由で読み込まれるようにすると、ウェブサイトがリダイレクトループに入ってしまいます。対策は単にSSL証明書をインストールすることです。
また、SSLチェックを実行することもお勧めします。SSL/TLS証明書には、メイン証明書だけでなく、中間証明書もインストールし、適切に設定する必要があります。
Qualys SSL Labsの無料SSLチェックツールを使用することをお勧めします。信頼性が非常に高い為、当社が証明書を検証するときにすべてのお客様を対象にこのツールを使用します。SSLチェックツールにアクセスし、「ホストネーム」フィールドにドメインを入力し、「送信」をクリックするだけです。必要に応じてパブリックな結果を非表示にすることもできます。ウェブサーバー上のサイトのSSL/TLSコンフィギュレーションをスキャンするのに1〜2分かかることがあります。

2. SSLプラグインを使用しないで、ハードコードされたリンクを更新すること
Really Simple SSLなどのHTTPSを自動的にリダイレクトする無料のSSL WordPressプラグインがあります。ただし、サードパーティプラグインを利用すると、常に課題または互換性問題が生じる可能性があるため、この方法を応急処置としない方がいいです。一時対策として使用してもいいですが、必ずハードコードされたHTTPリンクを更新する必要があります。
WordPressの検索と置換を実行する4つの方法についてのチュートリアルをご用意しております。また、Kinstaのお客様は、この作業をサポートチームに任せても構いません。
3. サーバー上のHTTPからHTTPSへのリダイレクトを確認する
おそらく、サーバー上のHTTPSリダイレクトルールが誤って構成されている可能性があります。
NginxでHTTPをHTTPSにリダイレクトする
ウェブサーバーがNginxを使用している場合、Nginxの設定ファイルに次のコードを追加することにより、すべてのHTTPトラフィックを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にリダイレクトする
WebサーバーがApacheを使用している場合、.htaccess
ファイルに次のコードを追加することにより、すべてのHTTPトラフィックをHTTPSに簡単にリダイレクトできます。Apacheで動作するWordPressをリダイレクトするために推奨される方法です。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
4. HTTPSリダイレクトが多すぎるか確認する
おそらく、HTTPSリダイレクトが多すぎるかもしれません。Patrick SextonのRedirect mapperツールを使用することにより、ウェブサイトのリダイレクト件数を簡単に確認できます。ここでは、正しく設定されていないリダイレクトの例を示します。Redirect mapperを使用することにより簡単に確認できます。 wwwと非wwwバージョンの両方でHTTPSリダイレクトが2件あることがわかります。

サードパーティーサービスを確認する
ERR_TOO_MANY_REDIRECTSは、Cloudflareなどのリバースプロキシサービスを原因に発生することもあります。通常は、向こうのフレキシブルなSSLオプションが有効になっているのに、WordPressホストにもSSL証明書がインストールされている場合に発生します。なぜかというと、Flexibleを選択すると、ホスティングサーバーへのすべてのリクエストがHTTP経由で送信されるが、ホストサーバーにはHTTPからHTTPSへのリダイレクトがあり、リダイレクトループが発生するためです。
対策は、Cloudflare Cryptoの設定をFlexibleからFullまたFull (strict)に切り替えることです。Kinstaのお客様は必ずCloudflareをご利用の場合のSSL証明書のインストール方法の手順もご確認ください。

「Always Use HTTPS page」(常にHTTPSページを使用する)ルールを使用すると、ループが発生せずにすべてのユーザーをHTTPSにリダイレクトできます。Cloudflareなら、「Forwarding (URL Redirection)」(転送(URLのリダイレクト))ルールもご注意ください。転送元と転送先の同じリダイレクトを作成しないようにご注意ください。これにより無限のリダイレクトエラーが発生し、影響を受けたURLが一切回復できなくなります。
StackPathをご利用の方は、「Origin Pull Protocol」(プルプロトコル元)というオプションを「HTTPS only」(HTTPSのみ)に設定してください。
Cloudflare DNSのみを使用する場合
CloudflareのDNSのみを使用し、Cloudflareのプロキシ・ WAFサービスを使用している方は、DNSレコードが「DNS Only」に設定されていることをご確認ください。確認するには、Cloudflareのコントロールパネルの「DNS」タブにアクセスします。

WordPressウェブサイトの設定を確認する
次に、WordPressウェブサイトの一般設定を確認します。間違ったドメインを指しておらず、不一致がないかを検証するのに、2つの項目を確認する必要があります。ウェブサイトに適切な(wwwまたは非www)プレフィックスを使用していないことはよくある不具合原因です。ユーザーがホストまたはドメインを切り替えて、本項目が変更した認識がないことがあります。
- 「WordPressアドレス(URL)」:ブログへのアクセスができるアドレス
- 「サイトアドレス(URL)」: WordPressのコアファイルへのアクセスができるアドレス
WordPressの独特なディレクトリを与えていない限り、上記の2つが一致するはずです。

ただし、エラー時にはWordPressのダッシュボードにアクセスできない可能性があります。そこで、wp-config.phpファイルに値を入力し、上記の設定を上書きすることができます。
wp-config.phpファイルは通常WordPressウェブサイトのルートにあり、FTP、SSH、WP-CLI経由でアクセスできます。WP_HOMEとWP_SITEURLをハードコーディングするには、ファイルの先頭に次のコードを入力し、正しいドメインを反映するように値を変更します。
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
入力後のwp-config.phpファイルのあるべき姿の例を挙げます:

管理画面にアクセスすることなくWordPress URLを変更できる方法が下記の2つもあります。
手動設定ができたら、ウェブサイトに戻り、リダイレクトループが回復しているか確認できます。
マルチサイト
マルチサイトでドメインを変更する場合は、必ずwp_blogs
テーブルも確認してください。検索と置換を誤って行うと、ネットワークサイトがサブサイトと一致しないため、無限のリダイレクトループが発生する場合もあります。
wp_#_options
:各サブサイトには、wp_blogs
テーブルのblog_id
に対応する一連のテーブルがあります。#がblog_id
に対応するwp_#_options
テーブルにアクセスし、そのテーブルの「SITEURL」と「HOME」の設定を更新します。
一時的にWordPressプラグインを無効にする
WordPressなら、すべてのWordPressプラグインを一時的に無効にすることは、不具合原因を特定するのに便利です。たとえば、Redirection及びYoast SEOプレミアムなどのプラグインでは、リダイレクトを実施できます。これらのプラグインの設定更新などが、サーバー上の既存のリダイレクトと競合し、リダイレクトループを引き起こすことがあります。
単にプラグインを無効にすることにより、データを失うことはありません。なお、エラー時にはWordPressのダッシュボードにアクセスできない可能性がある為、SFTP経由でサーバにログインし、プラグインフォルダの名前をplugins_oldなどに変更する必要があります。その後、ウェブサイトを再度確認してください。

これでエラーが回復した場合には、各プラグインを1つずつテストする必要があります。プラグインフォルダの名前を「plugins」に戻し、その中の各プラグインのフォルダ名を順番に変更します。最初にステージングサイトで行っても構いません。
サーバーのリダイレクトを確認する
サーバーのHTTPからHTTPSへのリダイレクトのほかに、設定が間違ってたリダイレクトがないかを確認した方がよいでしょう。たとえば、転送元と転送先が同じである301リダイレクト1件だけでウェブサイト全体がダウンする恐れがあります。リダイレクトは通常、サーバの設定ファイルにあります。
Apacheの.htaccessファイル
KinstaはNginxのみを使用していますが、Apacheを採用しているWordPressホストをご利用の場合は、.htaccess
ファイルに間違ったルールがある可能性があります。次の手順に従って、一から新しいのを作り直してください。
まず、FTPまたはSSH経由でウェブサイトにログインし、.htaccess
ファイルの名前を.htaccess_old
に変更します。これにより、バックアップが残ります。

通常、このファイルを再作成するには、WordPressのパーマリンクを再保存するだけです。ただし、ERR_TOO_MANY_REDIRECTSエラーが発生したときにはWordPressのダッシュボードにアクセスできない為、上記ができません。したがって、新しい.htaccess
ファイルを作成し、次の内容を入力し、サーバーにアップロードする必要があります。以下は、デフォルト設定のままです。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
マルチサイト用のデフォルトの.htaccessファイルなど、その他の例については、WordPress Codexをご参照ください。
Nginxの設定
ホスティング会社がNginxを使用している場合、設定ファイルが会社により多少異なる場合があるため、ややこしいことがあります。ホスティング会社に問い合わせをし、リダイレクトループの原因を設定ファイルで確認してもらった方がよいでしょう。
Kinstaのお客様はまず、リダイレクトを間違って設定していないかを当社のリダイレクトツールで確認してください。以下は、https://domain.com/
の転送元と転送先の同じリダイレクトで、リダイレクトループが発生した例です。

または、ロケーション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エラーのもう一つのよくある原因は、リバースプロキシです。リバースプロキシは非常に分かりにく場合があり、設定が間違っているとWordPressウェブサイトのリダイレクトループが発生しやすいです。繰り返しますが、Kinstaのお客様は本件でも当社のサポートチームまでお問い合わせください。
まとめ
リダイレクトループの原因を特定するのが難しい場合があります。上記のトラブルシューティング手順でERR_TOO_MANY_REDIRECTSエラーを解決できればと思っております。当社が見逃した重要な点がありましたら、是非コメントを書いて教えてください。
アプリケーション、データベース、WordPressサイトのすべてを一箇所で。Kinstaの高性能クラウドプラットフォームでは、次のような便利な性能や機能の数々をご用意しています。
- MyKinstaでの簡単な設定と管理
- 24時間年中無休のWordPressエンジニアによるサポート
- 最高レベルのGoogle Cloud Platformハードウェアとネットワーク(Kubernetesにより優れた拡張性を実現)
- 速度と堅牢性を両立するエンタープライズレベルのCloudflare統合
- 世界各地35箇所のデータセンターと275+に達するPoP(世界規模でオーディエンスに訴求可能)
アプリケーションホスティングまたはデータベースホスティングの初月を20ドル割引でお試しいただけます。プラン一覧をご覧いただくか、営業までお気軽にお問い合わせください。
コメントを残す