我需要将所有传入的HTTP流量重定向到我的弹性负载均衡器上的HTTPS。
我尝试使用Apache mod_rewrite:
利用负载均衡器添加的X-Forwarded-Proto标头,该规则应指导用户的浏览器请求相同URL的HTTPS版本。
到目前为止,它没有生效(没有重定向发生)。
我做错了什么?
有更好的方法吗?
编辑:
最终这个方法成功了:
我尝试使用Apache mod_rewrite:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
利用负载均衡器添加的X-Forwarded-Proto标头,该规则应指导用户的浏览器请求相同URL的HTTPS版本。
到目前为止,它没有生效(没有重定向发生)。
我做错了什么?
有更好的方法吗?
编辑:
最终这个方法成功了:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
R
返回一个HTTP 302状态之外,标志[L,R]
应该是可以的。标志的顺序不应该有影响。更可能的是关于RewriteRule
的变化,有两个方面不同:1)它不再重写对/status
的HTTP请求,2)它使用捕获组和反向引用((.*)
然后$1
)而不是%{REQUEST_URI}
变量。对于其他人来说,如果能看到这些标志是否真的是原因,或者可能是其他原因,可能会有所帮助。 - Tom Harrison Jr