WordPress https化ではまったのでメモ

WordPressで製作したサイトのhttps化の際に、トップページ以外のすべてのページでstyle.cssの
リンクがhttpのままだった。

プライグインSeerch Regexを使用しての一括変換を試みたが上記の症状。
問題は「さくらインターネット」のSSL化が原因であった。
——————————————————-
さくらのレンタルサーバはリバースプロキシによるHTTPS接続となっています。

その影響として、VPSや専用サーバ上でApache等のWebサーバを立ち上げた場合(プロクシ等を経由せず直接サーバとHTTPSで接続可能な状態)のように、.htaccessでRewriteCond %{HTTPS}を用いたHTTPS接続の判定や、PHPで$_SERVER[‘HTTPS’]を用いたHTTPS接続の判定が行えません。(リバースプロキシ経由の接続となり、実行されたファイルからはHTTPで接続されたものと見えるため)

また、実行ファイルから見たURL(URI)は、https://www.example.com/〜 ではなく、http://www.example.com/〜 となりますので、例えばPHPの$_SERVER[‘REQUEST_URI’]で現在のURLを取得するようなシステムは正常に動作せず、遷移後のURLがHTTPSではなく、HTTPになってしまう(URLが勝手にHTTPになるように見える)等の問題が発生します。
参考させてもらったサイト
——————————————————-

ということらしく、wp-config.phpに以下の記述を追加することで回避できました。

if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
    $_SERVER['HTTP_HOST'] = 'www.example.com';
    $_SERVER['SERVER_NAME'] = 'www.example.com';
    $_ENV['HTTP_HOST'] = 'www.example.com';
    $_ENV['SERVER_NAME'] = 'www.example.com';
}

「さくらインターネット」でのhhtps化に関してはこの記事とともに注意が必要だ。

PAGE TOP