WEB備忘録 SSI SSL

By sumitomo, 2016年1月13日

さくらサーバーで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ファイルのリンクを絶対パスでかく。