我的Apache服务器位于ALB / ELB之后。我在负载均衡器处终止SSL。负载均衡器监听80和443.我想将所有http请求重定向到https。
我在vhost配置中有这个重写规则:
InverseProperty
这样可行,但问题是我还在htaccess文件中有重定向。当通过htaccess文件发生重定向时,它首先重定向到http,然后vhost配置重定向将其选中并重定向到https。我想消除额外的http重定向。
http://mysite.example.com/sub 301 https://mysite.example.com/sub 301 http://mysite.example.com/newsub - 此重定向是htaccess 301 https://mysite.example.com/newsub 200
我希望优雅地将htaccess重定向到http。我可以通过添加https://% {HTTP:Host}来重写规则来解决这个问题。这是最好的方法:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
答案 0 :(得分:7)
应用程序负载平衡器现在支持两个新操作:重定向和固定响应。您可以将这些操作配置为基于内容的路由规则的一部分,使您可以将此功能卸载到负载均衡器。这样可以简化部署,同时受益于弹性负载平衡的规模,可用性和可靠性。
这就是我要使其在AWS上工作的方式:
答案 1 :(得分:0)
如果您的Web服务器在 AWS Application Load Balancer 之后运行,并且您为HTTP端口80配置了至少一个侦听器,则可以通过以下操作直接将http重定向到https:
希望有帮助!