WordPressでブログを更新しているときに、「リダイレクトが繰り返し行われました。」のエラーで、ブラウザがブログを表示しない状態になることがあります。
リダイレクトが繰り返されてタイムアウトすると、Google Chromeでは上の画面が表示されます。この症状を放置することは好ましくありません。なぜなら、異常なほど繰り返されたリダイレクトがスパムのようにも見えるため、サイトの評価(検索順位など)を著しく下げる原因になるからです。
サーバーがConoHaWINGの場合は、サーバーの設定画面でコンテンツキャッシュをクリアすると解消することがあります。
サーバーがConoHaWINGの場合
ブログを運用しているサーバーがConoHaWINGの場合、コンテンツキャッシュのキャッシュクリアを実行すると解消する可能性が高いです。
コンテンツキャッシュをクリア
- サイト管理を選択
- 切り替え:リダイレクトが起こっているブログのドメインに切り替え
- 高速化を選択
- キャッシュタブを選択
- コンテンツキャッシュ > キャッシュクリアの「クリア」ボタンを押す
コンテンツキャッシュとは
ConoHaWINGのページ表示を高速化する機能のひとつ。サーバー側でページをキャッシュ(一時保存)しておくことで、リクエストへの応答を速くする。とくに動的CMS(WordPressなど)で効果を期待できるが、キャッシュが解放されないとリダイレクトループが発生する原因にもなり得る。
コンテンツキャッシュをOFF
ConoHaWINGのコンテンツキャッシュをクリアしてリダイレクトループが解消した場合は、コンテンツキャッシュの利用設定をOFFにすると恒久的に解消します。
ConoHaWINGのコンテンツキャッシュはページ表示の高速化に有効ですが、リダイレクトループの症状が起きる原因にもなる「おせっかい機能」とも言えます。OFFにしても速度は全く変わらなかったので、個人的にはOFFで良いと判断しています。
そのほかに考えられる原因
- Redirectionの登録ミス:プラグイン「Redirection」を使用している場合、リダイレクトの設定をミスしている可能性がある。
- .htaccessファイルのミス:.htaccessファイルをいじってリダイレクトを設定したときに記述ミスしている可能性がある。
Redirectionの設定ミス
ページごとに301リダイレクトを設定できるプラグイン「Redirection」を使用している場合は、一度、Redirectionを無効化してみると原因を切り分けできます。
Redirecitonを無効化してみてリダイレクトループが解消するなら、Redirecitonの設定をミスして登録した箇所があると考えられます。とくに多数のページをリダイレクト設定しているときは、症状の出ているページについて「ソース」「ターゲット」を入れ違えて登録してしまった箇所がないかを確認してみると良いでしょう。
.htaccessファイルのミス
.htaccessファイルは、Webサーバー「Apache」を制御する設定ファイルです。プログラムと同様の制御構造を記述できるため、本来ならサーバーの知識を持つ技術者が触れるべきものです。
.htaccessファイルにリダイレクト制御を記述すればリダイレクトを設定できますが、もしリダイレクトループが.htaccessファイルをいじったあとに発生したのなら、.htaccessファイルを元の状態に戻すことで解消するでしょう。