在AWS负载均衡器上强制使用https和www

时间:2016-09-29 05:20:40

标签: regex .htaccess

我正在使用AWS负载均衡器,目前使用此.htaccess正则表达式将所有http重定向到https:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这很好,因为我必须在80上访问健康检查。但是,目前在尝试访问https www时出现DNS错误。

正则表达式会将所有内容路由到https://www并在我的实例上对http进行运行状况检查?

谢谢!

1 个答案:

答案 0 :(得分:1)

在负载均衡器后面的AWS,您必须以不同的方式处理事情。由于使用Load Balancer进行SSL卸载,您不会以正常方式检查https。您需要检查X-Forwarded-Proto

应该如下。

 RewriteEngine On
 RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
 RewriteCond %{HTTP_HOST} !^www\. [NC]
 RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC]
 RewriteRule ^.*$ https://www.%2%{REQUEST_URI} [R=301,L]` 
相关问题