Help us understand the problem. What is going on with this article?

さくらのレンタルサーバー+concrete5で常時SSL接続&URL正規化を行う方法

More than 3 years have passed since last update.

前提と目標

さくら コントロールパネル ドメイン設定

ドメイン登録

  • 「example.com」と「www.example.com」を別々のドメインとして設定します。
    両方とも「wwwを付与せずマルチドメインとして使用する(上級者向け)」の設定にします。

  • フォルダもそれぞれ別の物を指定します。

SSL証明書の登録とSSL設定

  1. まずはexample.comにSSL証明書を登録します。 参照:【ラピッドSSL】サーバコントロールパネルからの申込み・導入手順
  2. example.comの「SSL証明書>更新」から「秘密鍵のバックアップ」をクリックして秘密鍵をダウンロードします。
  3. 会員メニュー>契約情報 から「サーバー証明書」をダウンロードします
  4. もう片方のドメイン(例:www.example.com)に上記「秘密鍵のバックアップ」「サーバー証明書」を使ってSSL証明書を登録します。
    www.example.comにSSL証明書を登録する際、「秘密鍵のアップロード」が画面に出てこない場合(既に登録されたCSRキーが表示される場合)は、「秘密鍵を含む全設定の削除」をクリックして一度設定をクリアしてください

  5. 両方のドメイン設定を「SNI SSLを利用する」に変更します。

concrete5の設定

concrete5のインストール

example.comで指定したフォルダにconcrete5をインストールします。
concrete5:ホスティング会社別インストールガイド

リダイレクト設定

SSL Redirect Configurationをインストールします。
  URLルール(パス)に「*」を設定します。

プリティーURL

「管理画面>システムと設定>URLとリダイレクト」でプリティーURLを設定します。
「URLからindex.phpを除く」にチェックを入れて「保存」をクリックすると自動的に.htaccessファイルがサーバー上に生成されます。

ヘッダー情報変更

application/bootstrap/app.phpへ下記を追記します。

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://~ に設定します。

concrete.php
<?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追記
秘密鍵のアップロードが出来ない場合について補足しました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした