サイトの常時SSL化がなかなか出来なかった話

Web
この記事は約2分で読めます。

ほぼタイトルの通りです。

このWebサイトはさくらのレンタルサーバーで動いていますが、共有SSLなのでRewriteCond %{HTTPS} offやRewriteCond %{SERVER_PORT} 80といったリダイレクトは使えません。そのため以下のようにRewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$を使う必要があります。

参考サイト
さくらのレンタルサーバーで、.htaccess を使って http を https へリダイレクトして、www も無しで統一する | Latele Blog

RewriteEngine On

RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

と、ここまではGoogleで検索すれば大抵どのサイトでも出てくるのですが、私の場合はwww無しのhttp→httpsが動作せず悩んでいましたが、色々弄っていたら解決しました。原因はさくらのサーバーコントロールパネルの設定にある「Webアプリケーションファイアウォール」です。

この設定をすべて「利用しない」に設定したところhtaccessが期待した通りに動いてくれるようになりました。

コメント

タイトルとURLをコピーしました