Apache:禁用重定向到服务器名称不匹配的默认虚拟主机



我有许多服务在同一台机器上运行,其中一个使用SSL,让我们说"c3po.com"。我的服务器的网址是 https://c3po.comhttp://r2d2.comhttp://jarjar.com

问题是,如果我输入https://r2d2.com apache 会将我重定向到 https://c3po.com ,甚至没有更改 url。换句话说,我将看到c3po服务,我的浏览器显示http://r2d2.com

我知道当 Apache 无法完全匹配 vhost 时,它会使用与 ip:port 匹配的第一个加载的主机,因此没有:

<VirtualHost *:443>
    ServerName r2d2.com
    ...

它将拾取 :443 上找到的唯一虚拟主机,即:

<VirtualHost *:443>
    ServerName c3po.com
    ...

我真正想要的是,当用户键入https://r2d2.comhttps://jarjar.com时,会显示错误页面,因为这些服务(通过http启用SSL)根本不存在!我怎样才能做到这一点?

检查

名称虚拟主机 *:443

在主配置中启用。然后创建一个虚拟主机,该主机使用错误页面侦听端口 443,并使用 c3po.com 的配置创建另一个虚拟主机。如果任何用户将名称解析为您的服务器的 IP(他们将用于所有站点),他们将转到默认站点,除非他们要访问 c3po。

类似于以下内容的内容应该有效:

违约:

<VirtualHost *:443>
  ServerName _default_https
  DocumentRoot /path/to/error/page
  <Directory /path/to/error/page>
    ...
  </Directory>
</VirtualHost>

C3PO:

<VirtualHost *:443>
  ServerName c3po.com
  ServerAlias www.c3po.com
  DocumentRoot /path/to/c3po
  <Directory /path/to/c3po>
    ...
  </Directory>
</VirtualHost>

相关内容

  • 没有找到相关文章

最新更新