我有一个Apache Web服务器,它运行在端口80上的AWS EC2实例上。
我有一张ELB证书。所有请求都被ELB截获并转发到我的EC2实例,我的Web服务器在那里侦听任何调用。
当出现任何http流量时,我使用下面给出的规则将其重定向到https,该规则在我的http vhost中存在。conf文件:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
现在在我的http虚拟主机中。conf,我使用proxypass重定向任何到达端口443(默认https端口)的流量,如下所示:
<VirtualHost *:443>
ServerName www.mywebsite.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
现在,假设我打电话到:
http://www.mywebsite.com
它被重定向到:
https://www.mywebsite.com
但这个链接现在为索引服务。html文件存在于httpd中给定的默认webroot中。conf文件,而不是使用ProxyPass重定向它。
谁能告诉我哪里出了问题?