WordPressを運用中に、リダイレクトループが発生してしまうことがよくあります。
リダイレクトループが発生すると、ブラウザに「このウェブページにはリダイレクトループが含まれています」や「ERR_TOO_MANY_REDIRECTS リダイレクトが多すぎます」などといったエラーのメッセージが表示されて、WordPressが開けなくなってしまいます。
これは、リダイレクトループという言葉からもお分かりの通り、文字通りリダイレクトを永遠に繰り返してしまって目的のページが開けなくなってしまうエラーです。
ここではWordPressにリダイレクトループが発生してしまうエラーの主な原因と、その対処方法について解説をしてみたいと思います。
リダイレクトループの原因がSSL化のケース
WordPressをSSL化したときに、リダイレクトループが発生してしまうことがあります。
この場合はSSL化の設定をしたときに、どこかに誤りがあったことになりますので、1つずつ確認をしていくことで問題解決が可能です。
まずは、WordPressの管理画面から『設定』⇒『一般』を開いて、URLが正しく「https」になっているかを確認します。
URLが「https」を含んだものになっているにもかかわらず、リダイレクトループが解消できない場合は、URLに「www.」を含めてみてください。
これでリダイレクトループが解消することがあります。
もしリダイレクトループによって管理画面を開くことが出来ない場合は、サーバーにFTP接続をして『wp-config.php』の中に以下のような「https」を含めた記述をしてみてください。
define( ‘WP_SITEURL’, ‘https://○○○○.com’ );
ここまでやってもSSL化によるリダイレクトループが解消しないときには、『wp-config.php』に以下の記述を追加してみてください。
ここまででほぼSSL化によるリダイレクトループの問題は解消するはずですが、それでもダメな場合は、SSL化のためのプラグインを利用してみることをおすすめします。
●URLが正しく「https」になっているかを確認
●リダイレクトループが解消できない場合は、URLに「www.」を含めてみる
●それでもダメな場合は、SSL化のためのプラグインを利用してみる
プラグインが原因でリダイレクトループが発生
WordPressにリダイレクトループが発生してしまう原因で多いのが、プラグインによる不具合です。
プラグインはとても便利なのでたくさんインストールしがちですが、トラブルの原因になることも多いので、必要最小限に絞って利用した方が賢明です。
リダイレクトループの原因となることの多いプラグインは、主に『WPtouch』『Redirection』『W3 Total Cache』の3つです。
『WPtouch』は、WordPressをスマートフォンに対応させるためのプラグインですが、設定を変更したタイミングでリダイレクトループが発生することがあります。
もしこのプラグインが原因の場合は、設定を初期状態に戻すことでリダイレクトループを解消することができます。
管理画面が開けなくてプラグインの変更が出来ないときには、サーバーにFTP接続をして、『wp-content』の中の『plugins』を開いて、その中の『wptouch』フォルダーを一旦削除します。
そして、WordPressが無事に復活したあとに、『WPtouch』を再インストールします。
『Redirection』は、その名の通りURLのリダイレクト設定をするときに便利なプラグインですが、こちらも設定を間違ってしまうとリダイレクトループを発生させてしまいます。
不具合を解消するためには、設定を1つずつ見直しする必要がありますが、管理画面が表示できないとプラグインの設定ができませんので、その場合は先ほどと同様にFTP接続で『Redirection』を一度削除して、再インストールをする必要があります。
『W3 Total Cache』は、キャッシュによってWordPressの表示速度をアップさせるためのものですが、このプラグインはWordPressの大切なシステムファイルである『.htaccess』を勝手に書き換えてしまいます。
そのため、リダイレクトループなどの不具合が起こったときには、プラグインを初期状態に戻してやるだけではダメで、『.htaccess』内の記述を削除してやる必要があります。
削除をする場所は、「# BEGIN W3TC Browser Cache」から「# END W3TC Browser Cache」までの部分です。
●設定を初期状態に戻すことでリダイレクトループを解消
●WordPressが無事に復活したあとに、『WPtouch』を再インストール
●FTP接続で『Redirection』を一度削除して、再インストールをする必要
●『W3 Total Cache』はプラグインを初期状態に戻してやるだけではダメで、『.htaccess』内の記述を削除する
WordPress本体やテーマの関数が原因でリダイレクトループが発生
WordPress本体やデーマが原因でリダイレクトループが発生することがあります。
もともとWordPressには、さまざまなリダイレクト機能が備わっています。
この機能をテーマが使用する際に、何らかの不具合が起こってリダイレクトループの原因になってしまうわけです。
この場合は、テーマのリダイレクトに関する関数をチェックしていく必要がありますが、専門的な知識がないとかなかなか不具合のあるところを発見するのは難しいと思います。
テーマの関数が原因でリダイレクトループが発生しているときに、専門的な知識のない人でも実行できるのが関数の強制停止です。
「function.php」ファイルに、リダイレクトに関する関数を停止させるための記述をすることで、応急処置的にリダイレクトループをとめることができます。
記述の内容は以下の通りです。
ただし、この方法はあくまでも応急処置的は方法であることを頭に入れておく必要があります。
もしどうしても自分ではリダイレクトループの解消が難しいと感じるのであれば、専門業者に依頼をして復旧をしてもらった方がいいと思います。
弊社でもWordPressのトラブル復旧サービスを提供していますので、リダイレクトループでお困りの方は以下のページをご覧になってみてください。
●専門的な知識がないとかなかなか不具合のあるところを発見するのは難しい
●「function.php」ファイルに、リダイレクトに関する関数を停止させるための記述をする
●自分ではリダイレクトループの解消が難しいと感じるのであれば、専門業者に依頼
サイトURLやパーマリンクの設定が原因のリダイレクトループ
サイトURLやパーマリンクの設定が原因で、WordPressのリダイレクトループが発生してしまうことがあります。
サイトURLの設定が原因の場合の対処方法は、先ほどSSL化のところで説明したやり方と基本的には同じになります。
管理画面が表示できるときには、『設定』⇒『一般』を開いてURLを正しいものに変更します。
リダイレクトループによって管理画面が開けないときには、FTP接続をして『wp-config.php』の中に正しいURLを記述します。
パーマリンクの設定が原因でリダイレクトループが発生することもありますが、この場合は特に何かを変更する必要はありません。
管理画面を表示することができるときには、『設定』⇒『パーマリンクの設定』を開いて、そのまま何もせずにページの下にある「変更の更新」ボタンをクリックします。
これだけで、リダイレクトループが解消されることがあります。
管理画面を開くことができないときには、FTP接続を「htaccess.」内のパーマリンクの設定によって追加された「# BEGIN WordPress」から「# END WordPress」の部分を一旦削除して、パーマリンクを初期の状態に戻します。
そして、リダイレクトループが解消して管理画面に入れるようになったら、『設定』⇒『パーマリンクの設定』から再設定をするようにします。
●管理画面が表示できるときには、『設定』⇒『一般』を開いてURLを正しいものに変更
●FTP接続をして『wp-config.php』の中に正しいURLを記述
●管理画面を開くことができないときには、FTP接続を「htaccess.」内のパーマリンクの設定によって追加された部分を一旦削除
リダイレクトループ対処後のブラウザのキャッシュクリア
ここまでリダイレクトループが起こってしまったときの対処方法をいくつか紹介いたしましたが、これらの対処方法を行ったあとにやるべきとても重要なことがあります。
それはブラウザのキャッシュクリアです。
せっかくWordPressからリダイレクトループの原因を取りのぞいても、キャッシュがクリアになっていないとブラウザの表示は元のままです。
そのため、リダイレクトループを解消するための対処方法を1つずつ実行するたびに、ブラウザのキャッシュをクリアしながら表示を確認しなければなりません。
そうしないと、すでにリダイレクトループの問題が解決しているにもかかわらず、気がつかずに試行錯誤の泥沼にはまってしまう可能性があるからです。
●ブラウザのキャッシュクリア
●リダイレクトループを解消するための対処方法を1つずつ実行するたび確認する