WordPressの「リダイレクトが多すぎる」原因と対処法(ERR_TOO_MANY_REDIRECTS)
直らないときは、無料でご相談いただけます(直らなければ料金はいただきません)。
結論:「ERR_TOO_MANY_REDIRECTS」(リダイレクトが多すぎる)は、ページの転送が何度も続いて、ブラウザが表示を止めたときのエラーです。よくあるのは、転送が行ったり来たりを繰り返す形です。https への切り替え・引っ越し・アドレスの変更・CDNの導入の後によく起きます。
まず、別のブラウザやシークレットウィンドウで試し、それでも出るなら、直前に変えたところから、WordPressのアドレスの設定や、サーバー・プラグイン・CDNの転送の設定が食い違っていないかを確かめます。
目次
この記事は、WordPressのトラブル解決を受け付けているWP-ingが、確かめる順番をまとめたものです。
何が起きているのか
サイトでは、「http のページに来た人を https へ」「www なしの人を www ありへ」のように、ページを自動で別のアドレスへ送る(リダイレクトする)設定がよく使われます。
この設定が二か所以上にあって、向きが食い違っていると、たとえば次のように転送が終わらなくなります。
- サーバーの設定が「http → https」に送る
- WordPressの設定(アドレスが http のまま)や、別の設定が「https → http」に送り返す
- これがくり返され、ブラウザが途中で止めてエラーを出す
エラーの画面の文はブラウザによって違いますが、多くの場合、エラーの番号「ERR_TOO_MANY_REDIRECTS」や、「リダイレクトが多すぎる」という意味の文が出ます。
作業の前に確かめること
- 直前に何を変えたかをメモします(https への切り替え、サーバーの引っ越し、www のあり・なしの変更、SSLのプラグインやCDNの導入など)。原因を探す大きな手がかりになります。
wp-config.phpと.htaccessを書き換える前に、写しを手元に保存しておきます。書き換えて表示が変わらないときや、別のエラーが出たときは、写しに戻します。- できれば、バックアップ(ファイルとデータベースの両方)も取っておきましょう。
- 設定は一つ変えるごとに、エラーが出ていたページで確かめます。いくつも同時に変えると、どれが効いたのか、どれで別の不具合が出たのかが分からなくなります。
確かめる順番
1. 別のブラウザ・シークレットウィンドウで試す
ブラウザに残っている古い情報(Cookie や、以前の転送の記録)が原因のこともあります。
- シークレットウィンドウや、別のブラウザ・スマホで開いてみます。
- そこで開ける場合は、いつものブラウザで、そのサイトの Cookieを削除してから、もう一度開きます(すべてのサイトの Cookie を消すと、ほかのサイトからもログアウトされます)。
Cookie を削除しても変わらない場合は、ブラウザに残った表示の記録(キャッシュ)が影響していることもあります。シークレットウィンドウでも出るか、で見分けます。どのブラウザでも同じエラーが出るときは、サイト側の設定を確かめます。
2. どこで出るかを確かめる
次の4つのアドレスを、それぞれ開いてみて、どれでエラーが出るかをメモします(○○ はご自身のドメインです)。
http://○○とhttps://○○http://www.○○とhttps://www.○○
あわせて、サイトの表側だけか、管理画面(/wp-admin/)やログイン画面だけか、すべてかも見ます。どの組み合わせで出るかで、食い違っている設定の見当がつきます。証明書の警告や「接続できません」などの別の表示は、今回のエラーとは分けてメモしておきます。
このあとの3〜6は、上から順でなくてもかまいません。直前に変えたところに近い項目から確かめます(たとえば、CDNを入れた直後なら6から)。
3. WordPressのアドレスの設定を確かめる
管理画面に入れる場合は、「設定」→「一般」の「WordPress アドレス (URL)」と「サイトアドレス (URL)」を見ます。
- https に切り替えたのに、http のままになっていないか
- www のあり・なしが、実際に使っているアドレスや、サーバーの転送の設定と合っているか
- アドレスの最後に、余分な「/」や、違うフォルダ名が入っていないか
2つのアドレスは、WordPressをどこに置いているかによって違うことがあります(たとえば、WordPressをフォルダに置いて、サイトはドメインのトップで見せている場合)。フォルダ名は、正しいものまで消さないよう気を付けます。
管理画面に入れないときは、wp-config.php に、正しいアドレスを書いて確かめる方法があります(公式の案内にある方法です)。手順と注意は、ログインできない記事の「サイトのアドレスの設定を確かめる」をご覧ください。正しい2つのアドレスが分かる場合に限って行い、書く前に wp-config.php の写しを取ります。この方法は、データベースに保存されたアドレスそのものを書き換えるものではなく、書いている間だけ、その値を使う方法です。
4. サーバーの転送の設定が二重になっていないかを確かめる
https への転送は、次のように、いくつかの場所で設定できます。
- サーバーの管理画面の「https に転送する」などの設定
- WordPressのフォルダの
.htaccessに書いた転送のルール - SSL化のプラグイン(次の5)
同じ目的の転送が複数あるときは、転送先と条件が食い違っていないかを確かめます。とくに、向きが逆のルール(「www なし → www あり」と「www あり → www なし」、「http → https」と「https → http」など)が混ざっていると、ループになります。.htaccess に、自分で足した転送のルールや、プラグインが書いたルールが残っていないかも見ます。
.htaccess を直すときは、写しを取ってから、原因と分かった転送のルールだけを、サーバー会社やプラグインの案内に沿って直します。# BEGIN WordPress から # END WordPress の間は、WordPressが自動で書く部分なので、ふつうはそのまま残します。
5. SSL化のプラグインを確かめる
https への切り替えのプラグインを入れた直後に起きた場合は、そのプラグインが書いた転送の設定が、サーバーの設定とぶつかっていることがあります。転送を管理するプラグインや、ログイン・会員の機能を持つプラグインの設定が関係していることもあります。
- 管理画面に入れる場合は、そのプラグインを止めて、直るかを確かめます。
- 管理画面に入れない場合の止め方は、重大なエラーの記事の手順をご覧ください。
- プラグインによっては、
.htaccessに転送のルールを書き込んでいて、止めるだけでは消えないことがあります。たとえば、さくらのレンタルサーバの常時SSL化プラグインでは、.htaccessの「# BEGIN Force SSL for SAKURA」から「# END Force SSL for SAKURA」までを消し、http のアドレスで管理画面に入ってから、プラグインを止める手順が、公式に案内されています。消すだけで終わりではないので、公式の手順を最後まで確かめてから進めます。
6. CDN(Cloudflare など)を使っている場合
サーバーの前に、表示を速くしたり守ったりするサービス(CDN)を置いている場合は、そのサービスとサーバーの間の設定が食い違って、ループになることがあります。
たとえば Cloudflare の公式の案内では、SSL/TLSの暗号化のモードが「Flexible」のとき、Cloudflare からサーバーへは http でつなぐため、サーバー側で「http → https」に転送していると、ループになるとされています。直し方として、サーバー側の https への転送をやめるか、モードを「Full」以上にする方法が案内されています。「Full」以上にする前に、サーバー側にもSSLの証明書があり、https でつながることを確かめます。
なお、「Full」「Full (strict)」でも、サーバー側が逆に「https → http」へ転送していると、ループになります。Cloudflare の「Always Use HTTPS」や、転送のルール(Redirect Rules など)の設定も、確かめるところに入ります。
WordPressの公式の案内でも、SSLを受け持つ仕組み(リバースプロキシ)の後ろにWordPressがある場合、訪問者は https でつないでいても、WordPress側は http のつながりと判断して、転送のループになることがあり、wp-config.php での設定が案内されています。CDNやサーバー会社の案内に合わせて設定します。
主なレンタルサーバーの案内
| サーバー | https への転送の設定 |
|---|---|
| エックスサーバー | 「Webサイトの常時SSL化」。サーバーパネルの「.htaccess編集」で転送のルールを足す方法と、「ドメイン設定」の「HTTPSに転送する」の2つが案内されています。あわせて、WordPressの「WordPress アドレス (URL)」「サイトアドレス (URL)」を https に変えるよう案内されています |
| さくらのレンタルサーバ | 「【トラブルシューティング】WordPressの常時SSL化プラグイン」。https に切り替えた後に開けなくなったときの戻し方が案内されています |
画面の名前や、選べる機能は変わることがあるため、くわしくは各社の案内をご覧ください。
直った後に確かめること
- 「どこで出るか」の4つのアドレスのうち、そのサイトで受け付ける設定にしているものが、すべて同じ一つのアドレス(たとえば
https://○○)に着くかを確かめます。 - トップだけでなく、実際にエラーが出ていたページや、記事などのページも開けるかを確かめます。
- 管理画面に入れるか、ログインできるかを確かめます。
- https に切り替えた場合、ブラウザに「保護されていない通信」などの警告が出ていないかを見ます。画像などを http のアドレスで読み込んでいると出ることがあります(SSL化の記事の「http の読み込みが残っているとき」)。
- お問い合わせフォームを実際に送って、届くかを確かめます。
自分で進めるのが難しいとき
次のような場合は、無理に作業を進めず、ご相談ください。
- 管理画面に入れず、
wp-config.phpや.htaccessを触るのが不安 - 引っ越しや https への切り替えの後から、サイトにも管理画面にも入れない
- CDNやサーバーの設定が、どこで何をしているか分からない
- 直したつもりが、別のエラーが出るようになった
WP-ingでは、リダイレクトのループをはじめ、WordPressの不具合の修理を承っています。状況を確かめて、作業の前に料金をご案内します。直らなければ料金はいただきません。お支払いは、直ったことを確かめていただいてからです。
よくある質問
自分のブラウザでは直りましたが、ほかの人にも直っていますか?
自分のブラウザで開けても、ほかの人にも直ったとは限りません。シークレットウィンドウや別のスマホで開けるかを確かめ、それでも出る場合は、サイト側の設定を確かめましょう。
https に切り替えるのをやめれば直りますか?
一時的に直ることはありますが、今は https で表示するのが一般的で、やめるとブラウザに警告が出るようになります。転送先と条件の食い違いを直して、https のまま直すのがおすすめです。