如果我访问 example.com/index.php 或 www.example.com,网站加载正确。如果我直接访问http://example.com它将我重定向到https://example.com这给出了一个无效证书错误,并让我看到了访问 mail.example.com 时应该显示的内容
这是我的配置:
Listen 80
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/c1/example/example.com
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/c1/example/example.com
</VirtualHost>
<VirtualHost *:80>
ServerName pass.example.com
DocumentRoot /var/www/c1/example/pass.example.com
</VirtualHost>
<VirtualHost *:80>
ServerName ticket.example.com
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
</VirtualHost>
Listen 443
<VirtualHost *:80>
ServerName mail.example.com
Redirect / https://mail.example.com
</VirtualHost>
<VirtualHost *:443>
ServerName mail.example.com
ServerAlias mail.example.com
DocumentRoot /var/www/c1/example/mail.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /home/user/SSL/mail.example.com.crt
SSLCertificateKeyFile /home/user/SSL/mail.example.com.key
SSLCACertificateFile /home/user/SSL/intermediate.crt
</VirtualHost>
答案1
您使用 Google Chrome 进行测试吗?我注意到 Chrome 喜欢自行将您重定向到 https。使用其他浏览器(IE/Firefox/等)进行交叉检查。
另外,我没有看到 example.com 或 www.example.com 的 https 配置,这也可能是一个问题。
如果你不想输入两个 example.com,你可以使用
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/c1/example/example.com
</VirtualHost>