我想要建立一个http网站:http://example1.com以及一个 https 网站:https://example2.com使用以下配置:
Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerName example1.com
DocumentRoot /var/www/example1.com/public_html
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
DocumentRoot /var/www/example2.com/public_html
SSLCertificateFile...
SSLCertificateKeyFile...
SSLEngine On
</VirtualHost>
然而,如果我访问https://example1.com,我被重定向到https://example2.com如果我访问http://example2.com,我被重定向到http://example1.com。 我想https://example1.com和http://example2.com根本不存在。我该怎么办?我知道我可以再添加两个虚拟主机来匹配另一个版本的网站。我也可以为了 SEO 而将一个版本重定向到另一个版本。但这并不自然。想象一下,你只设置了一个 https 站点,而 apache 只监听 443 端口,搜索引擎永远不会知道 http 版本的网站的存在,而 http 版本的网站具有最好的 SEO 效果。这正是我想要的。
答案1
我还可以将一个版本重定向到另一个版本
这正是正确的解决方案。您的 Apache 现在正在监听和80
,443
并且VirtualHost
匹配是在连接内完成的,而不是在连接之前完成的。因此,您的服务器必须回答一些问题,而 HTTP 重定向到规范地址将是理想的选择。