apache HTTP:.htaccess中的X-Forwarded-Proto导致dev环境中的重定向循环

时间:2014-10-29 00:07:46

标签: apache .htaccess mod-rewrite redirect amazon-web-services

我必须从此更新我的.htaccess:

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

到此:

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

让它在AWS Elasic负载均衡器后面工作。

这一切似乎在AWS上运行良好,但在我的本地环境中,我陷入了重定向循环。

如何让这种设置在两种环境中都能正常工作?

2 个答案:

答案 0 :(得分:81)

要使其在两种环境中都有效,您可以结合两种条件:

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

答案 1 :(得分:1)

我有一个共享主机(masterhost)的特殊情况,一切都失败了,除了:

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