我正在尝试将 Web 应用程序中的所有 url 重定向到 https。
我在弹性负载均衡器后面有一个 ec2 实例。SSL 在负载均衡器上终止。
任何重定向的尝试最终都会给我熟悉的“此页面的请求方式永远无法完成”。
负载均衡器将 443 和 80 转发到实例上的端口 80。
这就是我的.htaccess 中所拥有的。
RewriteCond %{X-FORWARDED-PROTO} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
有人知道如何实现这一点吗?非常感谢,
答案1
未经测试..但我尝试了这个
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
答案2
麦克风的答案基本正确,但需要指出的是,负载均衡器仍需要执行其健康检查例程,以确保 ec2 实例仍然正常运转。这可以通过额外的RewriteCond
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
...alive.html
您的健康检查文件的名称是哪里。