我正在使用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进行运行状况检查?
谢谢!
答案 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]`