最近は、小規模サイトでも独自ドメインでSSL運用が当たり前になってきています。
というわけで設定メモ。
参考サイト
参考サイトの例だと、コントロールパネルでwww.harukas.orgとharukas.orgのwwwありなしそれぞれ両方を登録するんですね。二つは、同じ証明書を参照しています。
.htaccessの設定
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !^/robots.txt$ RewriteCond %{REQUEST_URI} !^/404error.html$ RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{ENV:HTTPS} !^on$ RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.○○○○○○○○\.co\.jp)(:80)? [NC] RewriteRule ^(.*) https://○○○○○○○○.co.jp/$1 [R=301,L] order deny,allow </IfModule> # BEGIN WordPress (ここは設置したwordpress用の設定) # END WordPress
wp-config.phpの設定
// プロクシでIPが入るとSSLアクセス状態をセットする if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = '○○○○○○○○.co.jp'; $_SERVER['SERVER_NAME'] = '○○○○○○○○.co.jp'; $_ENV['HTTP_HOST'] = '○○○○○○○○.co.jp'; $_ENV['SERVER_NAME'] = '○○○○○○○○.co.jp'; }
index.phpの設定
require( dirname( __FILE__ ) . '/○○設置ディレクトリ○○/wp-blog-header.php' );
さくらレンタルサーバーは、https用にリバースプロキシを通すそうなんですが、環境変数とか返す値が仕様でちょっとそのままでは使えない値になっているようです。その設定が必要ということで。
