我们有在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主页上。
您应该在重写规则中转义.
。将您的重写更改为:
RewriteRule "!/index.html" https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
此外,在OP的注释中,删除%{HTTP_HOST}%{REQUEST_URI}
之间的斜线