このブログを設置しているサーバーの構成を変更し、リバースプロキシにNginxを設置しました。
(User<->Nginx<->Apache<=>PHP)
その際、admin-sslプラグインでがっつりハマってしまったので記録します。
admin-sslプラグイン
admin-sslプラグインは、WordPressの管理画面へのアクセスをHTTPSで行うよう自動的にURLを書き換えたり、リダイレクトしてくれるプラグインです。デフォルトではPHPの$_SERVER['HTTPS']
変数の値でHTTPSかどうか判定します。
NginxをSSLリバースプロキシとして設置する
NginxをSSLを利用できる設定のリバースプロキシとして設置しました。もちろんX-Forwarded-Proto等リバースプロキシであることを示すヘッダを付加してApacheへリクエストしています。ところが・・・
おや?WordPressの様子が・・・
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ
どうも$_SERVER['HTTPS']
が定義されていなかったようです。。。
とりあえず対応
このサイトを見ながらwp-config.phpに以下を追記して事なきを得ました。
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) $_SERVER['HTTPS'] = 'on'; |
閲覧に影響がなかったのは唯一の救いかも。
ピンバック: Wordpress X-forwarded-proto | Wordpress Best Theme & Plugin