2014-10-29 11 views
30

ja miałem zaktualizować .htaccess z tego:Apache HTTP X-Przekazano-Proto w .htaccess powoduje przekierowanie pętli w środowisku dev

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

do tego:

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

aby działało za AWS Elasic Load Balancer.

Wszystko wydaje się działać dobrze na AWS, ale w moim lokalnym środowisku utknąłem w pętli przekierowania.

W jaki sposób mogę sprawić, aby ta konfiguracja działała poprawnie w obu środowiskach?

+0

Czy prowadzenie lokalnego serwera Apache jako proxy odwrotnej równoważenia/obciążenia? Czy ustawiłeś 'RequestHeader zestaw X-Forwarded-Proto" https "' w lokalnej konfiguracji VirtualHost? – kums

Odpowiedz

56

Aby pracować w obu środowiskach można połączyć oba warunki:

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

To faktycznie działa bez [OR], ale wraz z nim powoduje pętlę przekierowania. – greg

+2

To działa idealnie! Dzięki! – phlegx

+0

To działa na moją stronę "http://www.ex.com przekierowuje do https", ale jeśli ktoś przejdzie na stronę bezpośrednio "http: // www.ex.com/about" nie przekierowuje do https. Jestem za układem równoważenia obciążenia AWS –

Powiązane problemy