webデザイナーとshop運営をしています。
このブログでは主に「日々の制作過程」や、「勉強のお話」。
ときどき子育て生活のことを書いてます。
サーバーアップ

URL正規化がされていない?問題

プライバシーが保護されていませんの警告画像

http://〇〇.▲▲から飛ぶとhttps://www.〇〇.▲▲にリダイレクトされず、警告メッセージが出ていた!

以前制作したHP、リニューアル案件で、最終的にURL正規化をし、https://にリダイレクトさせていたハズのものが、リダイレクトされているものの警告メッセージが出てしまって表示されない状態だったと判明!

もう、タイトルで気づく人もいるかと思いますが、私のような凡ミスをされる方も
いるかな〜と思い記事にします。

問題はwwwのあり・なしだった

結局、正規URLがwwwありのURLでした。

そこを見落とし、.htaccessファイルでは、wwwありにリダイレクトさせる指示を書いていなかったことがリダイレクトできなかった原因だと判明。

やっていたこと

.htaccess ファイルには

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

と書いてサイト全体のURL正規化をしていました。

ただのお母さん
ただのお母さん
でも、これでは、https://にリダイレクトされるだけ。https://だけれど、wwwなしの状態にリダイレクトされていました。

修正したもの

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

このように一度、
http:// → http://wwwにリダイレクトさせてから
サイト全体をhttps://に再度リダイレクトさせる
という書き方で一件落着しました。

メモ
先に全体をhttps://にリダイレクトさせて、
その後、wwwありに再度リダイレクトさせる書き方を書いたらダメでした。

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