In my local apache2 server http listens to port 80 and https listens to port 443
But on appfog,
http and https both are listening to port 80 because of which im running into
"The webpage has a redirect loop" on google chrome.
Any help?
In my local apache2 server http listens to port 80 and https listens to port 443
But on appfog,
http and https both are listening to port 80 because of which im running into
"The webpage has a redirect loop" on google chrome.
Any help?
AppFog puts all of it's Apache servers behind load balancers running on nginx. Internally they are all communicating using default HTTP on port 80, because the gain of encrypting all the communication using SSL in that layer could be discussed. It is possible that they are still using SSL in some way, but that is not important to us. You can't see whether the client uses SSL or not because they are connected to load balancer not your Apache server. Luckily for us nginx sends some additional headers for us. X-Forwarded-Port
and X-Forwarded-Proto
to be precise. We could use this to our advantage and check one or more of those fields and redirect accordingly.
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$ [NC]
RewriteRule ^(.*) https://yourdomain.com/$1 [R,L]
This solved it for me at least. You might want to do something with X-Forwarded-Port
, but this should cover most cases.