無料でSSL証明書を発行できる「Let’s Encrypt」を使って、ホームページをSSL化した下記記事からの続きです。
ホームページをSSL化(セキュリティー強化)して安心したものの、ホームページを開いてみると変わらずhttpのまま、、、
なんでだ???
調べてみると、ホームページは、httpsのサイトを作っても、httpのサイトは残っており、昔のリンク(httpのアドレス)やブックマークなどから入ると、今までのhttpのサイトへ飛んでしまうらしい。
それはまずい!!
httpのサイトへ飛んできた人々を危険にさらさない為に、httpsのサイトへ誘導せねば!!
と、言うことで、
『 .htaccess 』ファイルを作り、リダイレクトという、指定されたサイトへ 転送する方法で解決してみようと思う。
手順は、下記を参照して欲しい。
①メモ帳でテキストファイルを新規作成し、下記の構文を記述する。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
②出来上がったファイルに名前をつけて保存。
このとき、『 .htaccess 』 というファイル名で保存したいのだが、ほとんどのケースでできないので、『 .htaccess.txt 』というファイル名で保存する。 (保存できれば、名前はなんでも良い)
③ ホームページサーバー内の一番上の階層に 『 .htaccess.txt 』 ファイルを置く
④ 『 .htaccess.txt 』 のファイル名を 『 .htaccess 』 へ変更する。
以上
これで、リダイレクトの設定は完了です。
それでは、どんなことが上の構文で処理されたかをちょっとだけ説明しようと思います。
まず、
IfModule・・・
指定したモジュールが、要求された事に使えるかどうかを判断し、使えるならば以下で要求したディレクティブが有効に働きます。
このときのモジュールは、
mod_rewrite.c・・・URLの書き換えをしてくれるモジュール
そして、 要求したディレクティブ は3つ、
① RewriteEngine On ・・・mod_rewriteの機能を実行する。
② RewriteCond %{HTTPS} off ・・・HTTPでのアクセスなのでSSL(HTTPS)でリダイレクトすることを指定。
これが、{HTTPS} がonの場合 → SSL(HTTPS)でのアクセスなのでHTTPでリダイレクトすることを指定することになる。
③ RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L] ・・・RewriteRuleはRewriteCondの条件が満たされている場合に実行され、『https:// 』サイトへリダイレクト(転送)する。
と、いう感じです。
いかがでしたでしょうか?
これで、当ホームページに訪れるすべての人の安全が守られたわけです。
あーー、よかったよかった!
URLの統一(正規化)へ続く、、、