SSL化したドメインに設定したサブドメインとhtaccessファイル

サブドメインを持つドメインを常時SSL化した時に、サブドメインをSSL化にするか非SSLのままで運用するかによって、htaccessファイルの記述に違いが出るので、共有したいと思い記録しておきます。

2ヶ月前にSSL化したサイトで気がついたことです。
サイト内にあるリンク経由でサブドメインサイトにアクセスすると、サブドメインのはずが、https付きのサブディレクトリで表示されています。
*サブドメインは非SSLです。
そこで検証をしてみた記録です。

サブドメインがサブディレクトリで表示される理由

サブドメインがサブディレクトリで表示される理由のひとつは、サブドメインフォルダに

Redirect /sub/ "http://sub.hogehoge.com/"

を記述したhtaccessファイルが無かったのが原因と思いますが、aタグは「<href =”http://sub.hogehoge.com/”>」と記述していますので、普通ならhttp://sub.hogehoge.com/と表示されるはずです。

そこで考えられるのが、ルートフォルダにあるhtaccessファイル

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.hogehoge.com/$1 [R=301,L]

がサブドメインにも影響することです。

つまり301リダイレクトにより http://はhttps://に強制的に変換されますので、http://から始まるサブドメインはhtpps://で始まるサブディレクトリに強制変換されます。

サブドメインが非SSLのままだと、http://sub.hogehoge.com/ は https://sub.hogehoge.com/ となりますが、このドメインは存在しないので、https://www.hogehoge.com/sub の表示になるわけです。

常時SSLサイトはサブドメインも含めてSSL化すべき

常時SSL化する際にはサブドメインも含めてSSL化すべきです。
SSL証明書のコスト面ですべてのサブドメインをSSL化できないという場合には、ワイルドカードを利用してコスト面での負担を少なくする方法もあります。
又、エックスサーバーのような、SSL無料サービスを行っているサーバーを利用する方法もあります。

コスト面以外に非SSLのままにしておきたいということもあります。
例えば、混在コンテンツになっておりSSL化しても意味が無いといったことです。

サブドメインをSSL化しないデメリット

SSL化した場合には、HSTSへの登録が考えられます。
登録することによってどの程度のメリットがあるかは分かりませんが、ユーザビリティの面では推奨されています。
しかし、この登録はサブドメインも含めてすべてSSLになっている必要があり、SSL化されていないサブドメインサイトは表示されません。

HSTSへの登録をあきらめる場合には、サブドメインの非SSLは可能です。

方法は簡単です。
301リダイレクトを使用しないことです。