我们在AWS ELB后面运行Apache的Web服务器。我已将ELB设置为接受HTTPS连接,并通过HTTP将请求发送到Web服务器。这很好。
我还使用HTTP:X-Forwarded-Proto将所有对ELB的请求从HTTP重定向到HTTPS。
我已将下面的virtualhost部分添加到我的httpd.conf文件中并重新启动了Apache。此设置将HTTP请求重定向到HTTPS,但它将登陆Apache主页而不是预期的站点。
ServerName www.myexample.com
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/index.html https://%{SERVER_NAME}/%{REQUEST_URI} [R=301,L]
配置似乎简单明了但不起作用。
请告诉我上述设置有什么问题,以及为什么它会登陆Apache主页。
答案 0 :(得分:0)
您应该在重写规则中转义.
。将您的重写更改为:
RewriteRule "!/index\.html" https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
此外,与您对OP的评论一样,删除%{HTTP_HOST}%{REQUEST_URI}