さくらインターネットのレンタルサーバで、独自ドメインを使ってサイトを運用しているときは、無料で常時SSL化することができます。ドメインに依存せず汎用的に使える書き方があるので、備忘録(コピペ用)として記事にしておきます。
前提条件
まずは前提条件の確認。
- サイトがWordpressであれば、「さくらのレンタルサーバ 簡単SSL化プラグイン」が便利なのでそれを使う。(だからこの記事でやってる作業は不要)
- さくらインターネットのレンタルサーバを借りている。
- 独自ドメインを取得している。
- レンタルサーバに独自ドメインを割り当てている。
- 有料SSLまたは無料SSLを申し込んで設定が完了している。
- https://~でアクセスしてみて、SSLで問題なくサイトが利用できるか確認済み。
.htaccessファイルの作成について
windowsの場合は、「.htaccess」など、「.(ドット)」から始まるファイル名は作れません。なので、まずは「htaccess.txt」など普通のテキストファイルとして作成し、アップロード後に名前を変更します。
.htaccessファイルの内容
結論から言うとさくらインターネットの場合は、この書き方でドメインに依存せず、HTTPでアクセスがあったらHTTPSに転送されます。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>URLの正規化(wwwあり)を追加した場合
# URL正規化(wwwあり)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# HTTPSがonじゃなければHTTPSに転送
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
ドメインにwwwが付いていなかった場合、www付きに転送する例です。
