これぐらいは最低限やってあげよう、httpからhttpsへのリダイレクト設定

どうも、ホワイトです。

クリスマスイブとかクリスマスとか知らないです。

今日も通常どおり普通に生きてます。

ここ最近でウェブサイトの常時SSL化が一気に進み、httpsで始まるURLを見る機会が多くなってきたかと思います。

ただ、このSSL化によってhttpsに設定してもhttpでアクセスすると、そのままhttpで閲覧できちゃうサイトも結構見かけますね。

重複したコンテンツによるGoogleからの評価を下げないためにもhttpへアクセスをhttpsへ統合するように設定を行う必要があります。

.htaccessにリダイレクト設定を記述する

RewriteEngine on
RewriteCond %{HTTPS} off //httpsではない場合
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] //httpsにリダイレクトする

通常なら.htaccessにこれを記述すれば完了となります。

httpをhttpsに変更したということは、サイトの内容は同一でhttpsにしただけということなので、サイトの評価はそのまま引き継いでいきたいですよね。

サイト評価を引き継ぐ301リダイレクト設定

上記のとおり、サイト評価を引き継いでおきたい!

そんなときは301リダイレクト設定を行います。

Googleの評価を引き継いでリダイレクトするのが301リダイレクト設定になります。

RewriteEngine on
RewriteCond %{HTTPS} off //httpsではない場合
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] //httpsに301リダイレクトする

先ほどのリダイレクト記述に301を加えるだけ。

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

このように直接URLを指定する書き方でも大丈夫です。
※sample.comの部分をそれぞれ該当するドメインに変更してください。

www有り無しのリダイレクト設定

ついでにこちらも設定を書いておきます。

httpとhttps同様に、wwwが付いているかいないかによっても重複コンテンツとして扱われてしまう恐れがあること、アクセスが分散してしまうことで、これもどちらかに統一する必要があります。

www有りをwww無しにリダイレクト

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,L]

www無しをwww有りにリダイレクト

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

先ほどとwwwのところを差し替えれば良いだけです。

いずれの設定も特に難しいことはありませんので、必ず設定しておくようにしておいてください。

こういったところはお客様からの指定が特になくても、制作者側として当然やっておくべき点かと思います。

お客様からの指定というか、指定できるようなお客様ばかりではないので、サービスの範囲内として予め設定はしておきましょう。