如何在Apache的单ip服务器上搭建一个http网站和一个https网站?

如何在Apache的单ip服务器上搭建一个http网站和一个https网站?

我想要建立一个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.comhttp://example2.com根本不存在。我该怎么办?

答案1

将要必须再定义两个 VirtualHost 块。如果 Apache 找不到与该名称匹配的 VirtualHost,它将使用属于该端口的第一个 VirtualHost。

当然,你不必为同一个网站提供服务:

  • 您可以提供一个错误页面,例如通用的404 未找到。这会惹恼别人。
  • 对于example2.com,您可以使用 RewriteRule 将所有 HTTP 访问者重定向到 HTTPS。
  • 对于example1.com...好吧,我真的不明白为什么你不通过 HTTPS 提供该服务?

但是,您不能让浏览器报告该域不存在,因为无论如何访问,它仍然是同一个域。

相关内容