apache HTTP:X-Forwarded-Proto in .htaccess is causing redirect loop in dev environment
I've had to update my .htaccess from this:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
to this:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
to get it working behind an AWS Elasic Load Balancer.
It all seems to work fine on AWS, but in my local environment I'm stuck in a redirect loop.
How I can get this setup to work correctly in both environments?
To make it work in both environments you can combine both conditions:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
I had a special case for a shared hosting (masterhost), everything was failing except:
RewriteCond %{HTTP:X-Forwarded-Port} !443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]