■
http を https にリダイレクト
http から https へのリダイレクト、LBなどを挟むとリダイレクトループになったりするため、いままでは80ポート以外をわざわざ空けて、そこにアクセスきたらリダイレクトするようにしてた。
そしたら X-Forwarded-Proto を見て、よしなにしてくれる方法があった。完全に便利。
apache
<VirtualHost *:80> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] </VirtualHost>
nginx
server { listen 80; if ($http_x_forwarded_proto = 'http') { return 301 https://$host$request_uri; } }