ほぼタイトルの通りです。
この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が期待した通りに動いてくれるようになりました。
コメント