概要
せっかくSSL対応しても、httpにアクセスする人がいたら意味がない、
その人達のために自動でhttpsにリダイレクトするようにしましょう。
一般的なレンタルサーバーを使ってる場合
./volume/contents/.htaccess
または/var/www/html/.htaccess
の先頭に以下を追記
普通に検索して出ているコードだと、リダイレクトループで落ちます。
ロードバランサーを使っている場合は以下を使いましょう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
AWSやGCPなどを使っている場合(リダイレクトループで落ちる場合)
上の方法でリダイレクトループで落ちるようなら、こちらの方法を試しましょう。
ループの原因はおそらくこうなっています。
80へのアクセス→そのまま80のアクセスとして流す→.htaccessによって443にリダイレクト
→443へのアクセス→ロードバランサーが80のアクセスに変換して流す→以下ループ
/var/www/html/.htaccess
の先頭に以下を追記
※こちらの方法で環境構築したようであれば、./volume/contents/.htaccess
に追記すれば大丈夫です。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
</IfModule>
コメント