Help us understand the problem. What is going on with this article?

SSL対応後のWordpress管理画面で発生した無限リダイレクトループの修正方法

More than 3 years have passed since last update.

WordpressでSSL対応させました。サイトアクセスの速度を上げようと、NginxでProxyキャッシュを効かせています。
サイトへのアクセスは問題なくできましたが、管理画面にアクセスすると無限リダイレクトループに陥ってしまいました。
以下、対応したことを記載しました。

リバースプロキシを使用している場合のSSL通信

SSLによるログインと管理画面へのアクセスを強制するためには、wp-config.php に

wp-config.php
define('FORCE_SSL_ADMIN', true);

を設定する必要があります。

ただ、リバースプロキシを使用している場合は、このオプションを設定するとすべてのリクエストが無限リダイレクトループに陥ります。これを避けるためには、

wp-config.php
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
}

という記述により、HTTP_X_FORWARDED_PROTO ヘッダーを認識するようにWordpressを構成する必要があります。

nginxにproxy_set_header X-Forwarded-Proto httpsを追加設定

HTTP_X_FORWARDED_PROTO をwordpressで認識するために、proxy_set_header に以下の一行追加します。

nginx.conf
proxy_set_header X-Forwarded-Proto https;

wp-config.php の注意点

ここで注意したいのは、wp-config.php における記述場所です。

wp-config.php
/* That's all, stop editing! Happy blogging. */

よりも上に記述する必要があります。この記述よりも下に記載すると、デバッグモードで

Notice: Constant FORCE_SSL_ADMIN already defined in

というエラーメッセージが表示され、

「このページにアクセスするための権限がありません。」

と、無限ループは解消されますが、管理画面へはアクセス出来ない状態が続きます。

以上の修正で管理画面へアクセスできるようになりました。

参考にしたサイト

Wordpress Codex 「管理画面での SSL 通信」

StackExchange 「Constant FORCE_SSL_LOGIN already defined」

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした