www付きhttpsまたはwwwなしhttpsへ統一する.htaccess

サイトをSSL化するのが常識化しました。今のところLet’s EncryptによるSSL化に対応していないサーバー会社あるいはサーバーは、X2サーバー(エックスサーバー)とクイッカぐらいです(2019年4月22日現在)。

こういう時代遅れのサーバー会社はいずれ淘汰されていくものと思われます。

さて、SSL化したなら、URLもhttpsで始まるURLに統一した方がいいですね。httpの方にアクセスすると、ブラウザー上で警告を受けますので、訪問者側では不安が生じます。これは回避すべきだと思います。

ついでに、www付きかwwwなしかどちらかに統一した方がいいです。これは必須とは言えませんが、URLに二通りあると、不安に思う訪問者もいるでしょう。訪問者に安心感を与える上で、この点でもURLを統一しておくのは意味があると思います。なお、もし統一していない場合、検索上では、検索エンジン側がどちらかに勝手に決めて、表示しますので、現状、検索に関してはあまり心配はいりません。

そこで、場合に分けて、.htaccessのディレクティブを載せておきます。

通常のサーバーの場合とSSLアクセラレーターを使っているサーバーの場合で違ってきますので、それぞれ分けます。

1)www付きで、httpsに統一する場合

通常のサーバーの場合

#www付き、httpsへ統一(通常のサーバーの場合)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^hotaruweblog\.com
RewriteRule ^(.*)$ https://www.hotaruweblog.com/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

SSLアクセラレーターを使用しているサーバーの場合

#www付き、httpsへ統一(SSLアクセラレーター使用の場合)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^hotaruweblog\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.hotaruweblog.com/$1 [R=301,L]

2)wwwなしで、httpsに統一する場合

通常のサーバーの場合

#www付き、httpsへ統一(通常のサーバーの場合)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.hotaruweblog\.com
RewriteRule ^(.*)$ https://hotaruweblog.com/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

SSLアクセラレーターを使用しているサーバーの場合

#www付き、httpsへ統一(SSLアクセラレーター使用の場合)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.hotaruweblog\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://hotaruweblog.com/$1 [R=301,L]

通常のサーバーとSSLアクセラレーター使用のサーバーの例

エックスサーバーは通常のサーバーです。Hawk HostはSSLアクセラレーターを使用しています。わからなかったら、サポートに聞いてみるか、実験してみることをお勧めします。

(2020年4月6日16:31改訂)