我试图redirect所有的url到HTTPS的Web应用程序。
我有一个弹性负载平衡器后面的EC2实例。 SSL在负载均衡器上终止。
任何redirect的尝试最终会给我熟悉的“这个页面以永不完整的方式请求”。
负载均衡器将443和80转发到实例上的端口80。
这是我在我的.htaccess中。
RewriteCond %{X-FORWARDED-PROTO} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
有没有人有任何想法如何做到这一点? 非常感谢,
未经testing..但我尝试这个
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Mike的答案大部分都是正确的,但重要的是要指出,负载平衡器仍然需要执行健康检查程序,以确保ec2实例仍然活着。 这可以通过一个额外的RewriteCond
来完成
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{REQUEST_URI} !^/alive\.html$ RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
…其中alive.html
是您的健康检查文件的名称。