ドメインを常時SSL化、そのサブドメインはSSL化したくない(XServer の場合)

Xserver では「Webサイトの常時SSL化」のマニュアルが用意されています。

この通りに行うと、わりと簡単に常時SSL化することができるのですが、「無料独自SSLを利用する」のチェックを外しているサブドメインがあった場合、サブドメインのページも自動的にリダイレクトされて以下のようなプライバシーエラーになってしまうようです。

 
流れとしては、ドメイン設定時(または後からサーバーパネルの「SSL設定」で)、「独自SSL設定を追加する(確定)」すれば、そのドメイン内のページを「http:// ~」でも「https:// ~」でも表示できるようになります。

そして、マニュアルに書かれてあるように .htaccess を設定すると、「http:// ~」と入力しても(とリンク先に書かれていても)自動的に 「https:// ~」にリダイレクトされるようになります。

この時、ドメイン以下すべてのファイル、サブドメイン以下全てのファイルに適用されます。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 


そこで、「https://www.outideoshigoto.com」は常時SSL化を行いたいけれど、そのサブドメインである「http://waiwaiwai.outideoshigoto.com」は、sslではなく http:// で運用したい、というような場合には、以下のように「%{HTTP_HOST}」でドメイン(サブドメイン)を特定する条件文を追加します。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} www.outideoshigoto.com
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

複数のサブドメインがある場合には、[OR]のオプションを指定することで複数指定できます。
下記の例では、「www.outideoshigoto.com」と「ssltest.outideoshigoto.com」は、http:// で入力されても、https:// になります。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www.outideoshigoto.com$ [OR]
RewriteCond %{HTTP_HOST} ^ssltest.outideoshigoto.com$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 


.htaccess などの設定が詳しいわけではありませんので、わかったところまでを覚書もかねて書かせていただきました。
参考になればうれしいです!