ウェブサイトの URL は「https://」から始まるのが当たり前になってきました。常時 SSL 化が重要視されるようになる以前はほとんどのウェブサイトが「http://」から始まっていました。
さて、常時 SSL 化が当たり前になっても、http:// でアクセスされたら自動で https:// に転送しなくてはいけません。転送しないと同じウェブサイトが2つ存在する事になってしまいます。
転送するには「.htaccess」に転送する処理を書くのは有名な話です。しかし、トップページ以外転送されないという問題にぶち当たりました。
.htaccessに書く転送処理
.htaccess には次のような処理を追記します。
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
しかし、追記したのはいいもののトップページ以外転送してくれません。
そこにはある1点の重要な事を見逃していたのです。
.htaccess には書く順番があります。
http:// から https:// へのリダイレクト処理は、.htaccess の一番先頭に書かなくてはいけません。今までは一番下に追記していたので、トップページ以外転送されない状態になっていました。
https:// へ転送してくれないとお悩みのかたは、.htaccess の記述順を確認してみてください。