前提と目標
-
concrete5 5.7.5.9(検証用にElementalをインストール)
-
さくらのレンタルサーバー スタンダードプラン
-
ラピッドSSL(SNI SSL)
-
.htaccessは「使わないドメイン」の方だけに設定
-
使いたいURLを https://example.com として説明しています。
-
下記全てのリダイレクトを行いURL正規化を目標とします。
http://example.com/ → https://example.com/
http://www.example.com/ → https://example.com/
https://www.example.com/ → https://example.com/
さくら コントロールパネル ドメイン設定
ドメイン登録
-
「example.com」と「www.example.com」を別々のドメインとして設定します。
両方とも**「wwwを付与せずマルチドメインとして使用する(上級者向け)」**の設定にします。 -
フォルダもそれぞれ別の物を指定します。
SSL証明書の登録とSSL設定
-
まずはexample.comにSSL証明書を登録します。
参照:【ラピッドSSL】サーバコントロールパネルからの申込み・導入手順 -
example.comの「SSL証明書>更新」から**「秘密鍵のバックアップ」**をクリックして秘密鍵をダウンロードします。
-
会員メニュー>契約情報 から**「サーバー証明書」**をダウンロードします
-
もう片方のドメイン(例:www.example.com)に上記**「秘密鍵のバックアップ」「サーバー証明書」**を使ってSSL証明書を登録します。
www.example.comにSSL証明書を登録する際、「秘密鍵のアップロード」が画面に出てこない場合(既に登録されたCSRキーが表示される場合)は、「秘密鍵を含む全設定の削除」をクリックして一度設定をクリアしてください -
両方のドメイン設定を**「SNI SSLを利用する」**に変更します。
concrete5の設定
concrete5のインストール
example.comで指定したフォルダにconcrete5をインストールします。
concrete5:ホスティング会社別インストールガイド
リダイレクト設定
SSL Redirect Configurationをインストールします。
URLルール(パス)に「*」を設定します。
プリティーURL
「管理画面>システムと設定>URLとリダイレクト」でプリティーURLを設定します。
「URLからindex.phpを除く」にチェックを入れて「保存」をクリックすると自動的に.htaccessファイルがサーバー上に生成されます。
ヘッダー情報変更
application/bootstrap/app.phpへ下記を追記します。
$request = Request::getInstance();
if ($request->headers->has('X-Sakura-Forwarded-For')) {
$request->server->set('HTTPS', 'on');
}
カノニカルURL設定変更
下記内容で application/config/ に concrete.phpというファイルを作成します。
※通常canonical_url は http://~ ですが、今回は https://~ に設定します。
<?php
return array(
'seo' => array(
'canonical_url' => 'https://example.com/',
'canonical_ssl_url' => 'https://example.com/',
),
);
参照:サクラインターネットで concrete5 を常時 SSL にするための方法
301リダイレクト設置
www.example.com のフォルダに下記内容で**.htaccess**ファイルを作成し、301リダイレクトを設定します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
</IfModule>
以上となります。
お疲れさまでした!
https://www.example.com を有効とする事も可能です。
その場合は example.comとwww.example.comを読み替えて設定してください。
2016.11.22追記
秘密鍵のアップロードが出来ない場合について補足しました。