ワードプレス リダイレクトエラーで管理画面へいけない

PHP

リダイレクトエラーで管理画面へいけない

今回遭遇したエラーは、Web開発をしているとたまに遭遇するかもしれないのですが、リダイレクトのエラーについてです。

今回はこのリダイレクトのエラーが、ワードプレスで発生した際の対処方法について、書いて行きたいと思います。

エラーでお困りの方へ

本記事はエラーでお困っている人が検索してきてくれているかと思うので、先にこの記事はどのような方が見るべきか結論をかいておきますね。

この記事を見たほうが良い方

  • HTTPS化している
  • ワードプレスの前にLBなどを通してアクセスしている

これらに当てはまればエラーが解決するかもしれないので是非最後まで見てみてください。

エラー発生時の状況

今回エラーが発生したときの状況はこんな感じです。

  • ワードプレスをバージョンアップした時にでた
  • 通常のブログは閲覧できる
  • 管理画面へいこうとするとリダイレクトのエラーが発生する

発生するエラー

エラーが発生するとこんな感じの文言がブラウザ上に現れます。

  • このページは動作していません
  • リダイレクトが繰り返し行われました。
  • Cookieを消去してみてください。
  • ERR_TOO_MANY_REDIRECTS

画面キャプチャ

エラーが発生したときに取得したChromeのキャプチャです。

参考になりそうな情報

僕がネット上でまず検索した時にここらへんが出てきました。

リダイレクトのエラーが発生した時は、こちらの対処方法を試すと治る場合もあるみたいです。

ただ今回の僕の場合は、これでは治りませんでした。

原因は別のところにありました。

自分で構築したサーバー構成をしっかり考えれば、すぐわかったことなのですが..

今回のエラー原因

そもそもエラー原因としては、僕がワードプレスをバージョンアップした時にwp-includes/load.phpファイルの内容を修正し忘れていたということでした。

通常はwp-includes/load.phpもそのままバージョンアップしても問題ないのですが、ワードプレスの前にLBを通してHTTPS化していたためリダイレクトのエラーが発生していました。

対処方法

wp-includes/load.phpでLB経由のリクエストを正しく処理する

今回のようにLBを通してHTTPS化している場合は、こちらのコードを追加するとエラーが解消され見事に管理画面へアクセスできるようになります。

wp-includes/load.php

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
}

コードを追加する位置はこのプラスになっているところらへんに追加すると良いです。

 function is_ssl() {
+        if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
+               $_SERVER['HTTPS']='on';
+        }
+
        if ( isset( $_SERVER['HTTPS'] ) ) {

まとめ

いかがでしたか。

リダイレクトのエラーが解消できたでしょうか?

こちらの方法でもうまくいかない場合やその他方法があれば是非コメントください。

オススメの関連商品

コメント