ConoHa WINGにWordPressを移行した際、管理画面でリダイレクトループが発生しました。SSL環境でよく起きる問題で、wp-config.phpに数行追加するだけで解決できます。
環境
- ConoHa WING
- WordPressをルートではなく
/app以下に配置 - SSL(https)を適用済み
原因:リバースプロキシ環境でのSSL判定
ConoHa WINGに限らず、リバースプロキシやロードバランサーを経由している環境では、WordPressがHTTPSアクセスを正しく検出できないことがあります。
具体的には:
- ブラウザ → ConoHaのプロキシ(HTTPS) → WordPress(HTTP)
- WordPressは
$_SERVER['HTTPS']を見て「HTTPだ」と判断 - HTTPSへリダイレクト → またHTTPと判断 → リダイレクト → ループ
ConoHa WINGでは、SSLを適用するとhttp→httpsのリダイレクトが上位ディレクトリで自動的に処理されるため、.htaccessに自分でリダイレクトルールを書くと二重リダイレクトになる可能性もあります。
解決方法
wp-config.phpのDB接続情報より下に、以下を追加します。
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
$_SERVER['HTTPS'] = 'on';
}
何をしているのか
FORCE_SSL_ADMIN— 管理画面を強制的にHTTPS化HTTP_X_FORWARDED_PROTO— プロキシが付与するヘッダーを確認し、元のリクエストがHTTPSだった場合に$_SERVER['HTTPS']を手動でonにする
これにより、WordPressがリバースプロキシ越しでもHTTPSアクセスを正しく認識できるようになります。
確認ポイント
修正後、以下を確認してください。
- 管理画面(
/wp-admin/)に正常にアクセスできる - フロントページが正常に表示される
-
.htaccessに手動で書いたHTTPSリダイレクトルールがあれば削除する(ConoHa側で自動処理されるため)
この問題が起きやすいケース
- ConoHa WING、エックスサーバー、さくらなどリバースプロキシを使っているレンタルサーバー全般
- WordPressをサブディレクトリに配置している場合
- SSL証明書を後から適用した場合
同じ症状で困っている方は、まずwp-config.phpへの追記を試してみてください。