这是我的设置:
EC2与Apache使用弹性负载均衡器。
我希望将所有http流量自动重定向到https。我找到了这个,并通过添加到我的httpd.conf文件中尝试了它:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>
但是,在重新启动服务器之前或之后,这没有用。 HTTP没有重定向,我的网站抛出了各种错误,直到我从配置中删除了规则。
我认为我错误地更新了文件或者错误地设置了负载均衡器。对于负载均衡器的监听器,我有LB协议HTTP,端口80,实例协议HTTP和实例端口80.我在端口443上有LB协议HTTPS,实例端口443.我的SSL在后一种协议上。
知道从哪里开始?
答案 0 :(得分:3)
您提到的配置应该运行良好。问题可能是未加载mod_rewrite
模块。将以下行添加到您的apache配置中以加载重写模块。
LoadModule rewrite_module modules/mod_rewrite.so
您可以尝试以下配置,这比您使用的配置简单得多。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}