web-dev-qa-db-fra.com

apache HTTP: X-Forwarded-Proto dans .htaccess provoque une boucle de redirection dans un environnement de développement

J'ai dû mettre à jour mon .htaccess à partir de ceci:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

pour ça:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

pour le faire fonctionner derrière un équilibreur de charge AWS Elasic.

Tout semble bien fonctionner sur AWS, mais dans mon environnement local, je suis coincé dans une boucle de redirection.

Comment puis-je faire fonctionner correctement cette configuration dans les deux environnements?

44
greg

Pour le faire fonctionner dans les deux environnements, vous pouvez combiner les deux conditions:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301,NE]
84
anubhava

J'avais un cas particulier pour un hébergement mutualisé (masterhost), tout échouait sauf:

  RewriteCond %{HTTP:X-Forwarded-Port} !443
  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
1
Nick Kovalsky