(flow)wordpressがインストール済みで、さくらインターネットでのSSL設定は完了しいてると想定しました。
- wordpress管理画面→設定→WordPress アドレス (URL)とサイトアドレス (URL)のhttpをhttpsに変更する。
- 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';
}
といった記述を追加する。弊社は上部に記述追加しましたので、実際には、こんな感じになりました。※)MW WP Formを使用される場合、この記述が必須です。
<?php
// プロクシでIPが入るとSSLアクセス状態をセットする2015_10
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';
}
/**
* The base configurations of the WordPress.(この下、実際には続きます)
- これできなくなっていました。))
つぎに、.htaccessに以下の記述を追加しました。この記述は、httpへのアクセスをhttpsにリダイレクトします。(なぜか、うまく行かないケースもあります)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
</IfModule>
以上の流れ(flow)でWordPressは、問題なくSNI SSL環境で稼働できました。一部のサイトに書かれている様なwwwアリでは対応できない、という事もなく使えています。
記述内に、sakuraとありますように、さくらインターネット独自の何かがあるようにも感じます。
上記ですが、うまくいきませんでしたのでさくらインターネットに問合せましたら出来ないとの事でした。対応策を以下にまとめました。
- javascriptでhttp://をhttps://にリダイレクトしました。
<script type="text/javascript">
if(location.protocol == 'http:') {
location.replace(location.href.replace(/http:/, 'https:'));
}
</script>
この記述をページの上部に記載しました。<head>タグの直下くらいに記載しました。
- canonicalでhttps://としました。
<link rel=”canonical” href="https://example.com/" />
これはトップページの例です。各ページのURLを記載する必要があります。
- サイト内リンクをすべてhttps://に変更しました。
<a href="https://example.com/">HOME</a>
とか、
<link href="https://example.com/css/common.css" rel="stylesheet" type="text/css" />
他にも画像リンクもhttps://に変更しました。
後は、sitemap.xmlをhttps://に変更して、searchconsoleもhttps://でアカウントを開設して、、、といったところです。
やってはいけないのは、metaタグのrefreshで、https://にリダイレクトさせるのはNGです。ページがループになってしまいます。