【常時SSL化】httpをhttpsにリダイレクトさせるhtaccess設定

アンチウィルスソフトで有名なシマンテックのセキュリティ講座に参加してきました。

セキュリティ系の講座にしては珍しく、SEOについての情報も話されていました。

SEOとは、検索エンジンで検索されたときに、なるべく上位に表示されるように頑張る取り組み全般のことです。

WEB業界で生きている人にとっては、検索順位は生活を左右する一大事なのですが、上位表示させるにはいろいろなコツがあるのですね。

で、シマンテックいわく、「今後は全通信をhttps経由にしておくことが望ましい(らしいよ)」とのことでした。

たしかに、こんな動画を見ますと、グーグルもhttps経由の通信を好ましく考えているらしいことは、なんとなく伝わってきます。

昔はSSL経由の通信は速度が遅くなるといったことが多かったようですが、ここ最近はまったく差がないそうです。

ということで、せっかくSSLを導入しているサイトオーナーさんは、全通信をSSL化しておきましょう。

http経由での接続を自動的にhttpsにリダイレクトさせるためのhtaccess記述例です。

サイトのルートに入れておけば、自動的に全通信がhttps経由に変換されますので、かんたんです。

.htaccessというテキストファイルを作成して、以下の内容をコピペして保存し、ホームページ用のディレクトリの一番上に置くだけです。

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

ただ、Windowsなどでは「.htaccess」っていうファイルを作れないんですよね。

いったん作られた.htaccessファイルをFTP経由でダウンロードすることはできるのですが、Windowsの場合は拡張子という概念があるので、直接.htaccessファイルをつくることができません。

そのため、「どうやって作るの?」と戸惑う人もいるかもしれません。

よって、.htaccessというテキストファイルを作成するのが面倒くさいという場合は、これをダウンロードして使ってください。

記述例

これだけでOKです。

ただし、サーバー上にすでに「.htaccessファイル」が存在する場合は、そのファイルをいったん手元にダウンロードし、そこに追記する形で保存してからサーバに上書き保存してください。

たとえば、ワードプレスを使っている場合だと、自動的にhtaccessファイルが生成されていたりしますので、確認してみてください。

サイトマップも作り直しておきましょう

httpから始まるURLと、httpsから始まるURLは、まったくの別物扱いになります。

よって、httpsのURIで構成された新しいサイトマップを、サーチコンソール(旧ウェブマスターツール)から通知しておきましょう。

それと忘れがちなのが、HTMLファイルの一部にhttp経由の呼び出しがあると、ブラウザが「大丈夫か?」という心配させるメッセージを吐き出してしまいます。

画像などをうっかりhttp経由の絶対パスで呼び出したりしていないか、ひととおりページをチェックしていくこともお忘れなく。

ついでに、備忘のために、wwwありに統一するためのhtaccessもメモしておきます。

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

上記は「なんたらかんたら.com」という場合です。

もしも「なんたらかんたら.co.jp」なら、こちらを。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^wasinodomain\.co\.jp
RewriteRule (.*) http://www.wasinodomain.co.jp/$1 [R=301,L]

ちなみに上記の「\」マークなのですが、日本円マークで表示されることもあれば、スラッシュマークの反対側みたいなマーク(バックスラッシュと言います)で表示されることもあります。

どちらで表示されるかは、閲覧時の環境次第です。

これは「エスケープシーケンス」といいまして、その直後の文字の効果を無効化するために使います。

サーバーでは、「+」やら「-」やら「.」やら「@」などの文字は特別な意味を持っているので、この特別感を無効化するためにエスケープシーケンスが使われています。

ファイルメーカーなんかでメールアドレスを検索するときと同じですね。

たとえば、tanaka@xxx.xx.xxみたいなメールアドレスを検索したい場合は、tanaka@@xxx.xx.xxみたいに検索する必要があるって感じです。

話は戻りまして、上記の場合だと「.」という文字の前にエスケープシーケンスが入っていますが、この「.」をふつうの文字列として扱わせるために、こうしたエスケープシーケンスが入っています。

ということで、全部をSSLにしたいので、ひとまずこういう感じにしときました。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^xxxxxxxx\.co\.jp
RewriteRule (.*) https://www.xxxxxxxx.co.jp/$1 [R=301,L] RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

これらの設定が終わりましたら、あらたにサイトマップを再作成します。

このサイトマップ作製はどこのサービスを使っても大差ありませんが、「FC2 サイトマップ」で検索すると出てくるFC2サイトマップサービスを使いました。

しばらく待ってると、ページをhttps経由でたどってくれて、ちゃんとできてます。

こうして作成したsitemap.xmlファイルをFTPでアップロードしておいてから、サーチコンソールから新しいサイトマップ情報を再送信します。

https経由のサイトマップを指定してエイ。

あとは気長にまっとく感じでしょうか。

参考になりましたら幸いです。

Twitterでフォローしよう

おすすめの記事