WordPress https化ではまったのでメモ
2018年1月10日
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化に関してはこの記事とともに注意が必要だ。