さくらサーバーでWPのSSI SSL設定が大変ややこしい事になったので、備忘録としてここに記します。
まず、さくらサーバーでWPを使った場合のSSL設定はサーバープランによってSSLの種類が違う。
ービジネスプロだとIPアドレスでSSL設定が出来るので、.htaccessのみで一括操作が出来る。
※以下を追加
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteBase /wp/ RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L] </IfModule> # END WordPress
ービジネスプラン以下だとSSI SSL設定となり、上記の方法ではリダイレクトがかかってしまいSSL設定が出来ない。
この件はさくらに問い合わせしても、対応策は今の所無いとのこと。。。
契約前にそのような注意喚起がされていない為、この罠にはまる人は多いようです。
かく言う私がどんはまりしたように。。。
そこで、ビジネスプロプランに乗り換えれば済むのでは?と思いがちですが、それをすると全ての設定を変えなければいけないので、2-3日サーバーが利用停止となり、話になりません。
そこで下記の方法でSSI SSL設定を可能にしました。
参考サイト:http://qiita.com/tabimoba/items/64ef60412abe7ad6f0ac
1. .htaccessに以下を追加
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.ooispring.co.jp/$1 [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
2. wp-config.phpに以下を追加
// プロクシでIPが入るとSSLアクセス状態をセットする
if( isset($_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’]) ) {
$_SERVER[‘HTTPS’] = ‘on’;
$_ENV[‘HTTPS’] = ‘on’;
$_SERVER[‘HTTP_HOST’] = ‘www.ooispring.co.jp’;
$_SERVER[‘SERVER_NAME’] = ‘www.ooispring.co.jp’;
$_ENV[‘HTTP_HOST’] = ‘www.ooispring.co.jp’;
$_ENV[‘SERVER_NAME’] = ‘www.ooispring.co.jp’;
}
3. jsを使っている場合、上記を追加するだけでは機能しないため、jsファイルのリンクを絶対パスでかく。