ちょうど先日、当サイトもNginxでのリバースプロキシを使った運用に変更したのですが(詳しくは過去記事「Nginxをリバースプロキシサーバーに使ってApacheといっしょに運用する」にまとめています)WordPressを使ったサイトだったので、実装を進めていくと管理画面のログインページにアクセスした時に「このページにアクセスする権限がありません」というエラーが表示される現象がありました。
公式のCodexにも記載されているのですが、どうやら強制的にSSL通信をさせる設定を行う必要があるようで、結論から言うと下記のコードをwp-config.phpに記述する必要がありました。
【wp-config.php】
define('FORCE_SSL_ADMIN', true); if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) { $_SERVER['HTTPS']='on'; }
1行目の関数で管理画面のSSL通信を強制にするのですが、リバースプロキシを使っている場合リダイレクトループになるので、HTTP_X_FORWARDED_PROTO ヘッダーを認識させる形になるとのことです(公式のCodexより引用)これで無事に管理画面にもログインができるようになりました。
また、上記コードはwp-config.php内の最初に記述するようにします。(記述場所によってはエラーとなるため)使う条件は限られますが、知らないとほぼわからない部分ですよね、、こういった情報があるのはありがたいですね。