この記事は2018年のものです。情報が古くなっている可能性があります。

何をしたかったかをまず。

<目標>

  1. 他社で取得した独自ドメイン(例: example.jp )に対して無料のSSLを使用したい
  2. さくらの初期ドメインを www.example.jp に統一したい(htaccess) 
  3. 1.のURLは www有りのURL→www.example.jp に統一したい。(htaccess)
  4. httpでサイトにやってきたら、httpsへリダイレクトされるようにしたい(htaccess)

ドメインは以下の2つが存在していると思って下さい。

  • 他社で取得した独自ドメイン(例) example.jp
  • さくらのサブドメイン(例) example2.mints.ne.jp

上記の<目標>の1から4を行いたかったわけです。
1はすんなりコントロールパネルからできます。
2から4をhtaccessに記述してサーバへアップすると、何故かリダイレクト処理がループしてサイトが見えなくなります。
htaccessの記述は間違っていないのに・・・・
調べたところ、さくらのマニュアルに”「www.」有り/無しの正規化が必要な場合はドメイン設定の変更が必要”とあるじゃないですか!!
なんか説明読んでもよくわからないので、実際にやってみました。以下が作業手順です。

htaccessの修正は間違えるとサイトが表示されなくなったりしますので、バックアップを取ることをお忘れなく。以下の作業手順は動作を保証するものではありませんので、自己責任でお願いします。

<作業手順>

1.他社で取得した独自ドメインに対して無料SSL(Let’s Encrypt)を適用する

さくらのこちらのページの通りに独自ドメインのSSLを有効にします。

2.さくらのコントロールパネルからの設定をする

基本的には以下の手順↓にそって進めます。

【WordPress】www付きのドメイン利用中で、SSL化する時の手順

私が行った方法を簡単に

  1. 新しいドメインの追加→5.他社で取得したドメインを移管せずに使う」→「他社で取得した独自ドメインの追加」から「www.example.jp」を追加します
    ※もしドメインが text999.jpだったならば、www.test999.jp を追加することになります。
    ※さくらインターネットでドメインを取得された方は「2.さくらインターネットで取得したドメインを使う」から追加します。
  2. 1で追加したドメイン(www.example.jp)の「変更」ボタンを押して詳細画面を開きます。
    「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択し、
    マルチドメイン用のフォルダを指定する。→同名のフォルダをサーバにアップしておく
    ※ここで作成した exampleフォルダ内が www.example.jp/で表示されるコンテンツとなります。


  3. 1で追加したドメイン(www.example.jp)の共用SSL(let’s Encript)を使用開始する

    ※Let’s Encriptを使用しない場合は 【WordPress】www付きのドメイン利用中で、SSL化する時の手順のSTEP1の項目4,5,6をご覧ください。
  4. もともと設定してある example.jp の「変更」をクリックして

    「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択して「送信」する。

    以上でコントロールパネルからの設定は終わり。

3.htaccessを準備します(1)

以下の.htaccessを/www/直下へアップロード

RewriteEngine on 
#1 
RewriteCond %{HTTP_HOST} ^(www\.)?example\.sakura\.ne\.jp$ [NC] 
RewriteRule .* https://www.example.jp%{REQUEST_URI} [R=301,L]

#2
RewriteCond %{HTTP_HOST} ^example\.jp 
RewriteRule ^(.*)$ https://www.example.jp$1 [L,R=301]

#1 初期ドメインをwww.example.jp に統一
#2 www有りのURL→www.example.jp に統一

※ここに4のhttpsへのリダイレクトを記述しない。記述するとさくらのサブドメイン(example2.mints.ne.jp)までもhttpsに強制的にリダイレクトされます。さくらのサブドメインでは共有SSLの使用は推奨されていないので、https://www.example2.mints.ne.jp はセキュリティエラーとなります。

4.htaccessを準備します(2)

以下の.htaccessを /example/フォルダの直下に置きます。
※/example/フォルダの直下にhttpsへのリダイレクトファイルを置くことで、サブドメイン(example2.mints.ne.jp)はhttpでの接続が維持できるわけです。もしも/www/直下にこのhtaccessを追加してしまうと、サブドメインまで強制的にhttps接続になってしまいます。

SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 
<IfModule mod_rewrite.c> 
RewriteEngine on

#1 RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

#1 httpでアクセスしてきたら、httpsにリダイレクトします

以上

今のところこれで動いていますが、これからの運用で支障が出ないかウォッチしていかないといけません。

Site Search

Profile

profile

Web制作を生業にしています。主にHTML, CSS, JavaScript, PHP, WordPressのカスタマイズなどしてます。忘れっぽいので備忘録としてWebの小ネタを書いたり、人生のいろんなことを不定期にのんびり更新しています。小学生男児の母(シングルマザー)です。