【问题标题】:How do I configure apache to return 404 on unconfigured subdomains?如何配置 apache 以在未配置的子域上返回 404?
【发布时间】:2021-04-09 18:35:01
【问题描述】:

我在 Debian 计算机上使用 apache 自托管网站,在我的 DNS 配置中,我已将我的域 (*.mydomain.com) 的所有子域设置为转到我的 Debian 计算机的 IP。如何配置 apache,以便如果有人转到没有虚拟主机的子域,我为每个子域都有一个单独的文件,他们会收到 404 错误,而不是看到根域上的内容?我尝试编辑 000-default.conf 文件并将以下内容放入其中:

<VirtualHost *:80>
        ServerName null
        Redirect 404 /
</VirtualHost>

<VirtualHost *:443>
        ServerName null
        Redirect 404 /
</VirtualHost>

但现在当我访问 mydomain.com 时,我收到以下错误:

This site can’t provide a secure connection
mydomain.com sent an invalid response.
ERR_SSL_PROTOCOL_ERROR

奇怪的是,如果我转到我为 mydomain.com 配置的子域之一,它可以正常工作,并且我看到了应该在子域上的页面。

【问题讨论】:

  • 443端口需要配置ssl。这就是为什么它不起作用。我相信只有当您使用 HTTPS 访问该网站时才会发生这种情况。
  • 并且,不要将端口 443 添加到 000-default.conf,而是使用 default-ssl.conf 文件。使用 a2enconf default-ssl 启用 default-ssl.conf,然后从 000-default.conf 中删除 443。然后,使用systemctl restart apache2 重新启动/重新加载 apache

标签: apache debian apache2 apache2.4


【解决方案1】:
 Your connection is not private

错误消息来自所使用的证书,该证书可能对您要连接的域无效。 *.mydomain.com 等通配符证书对“third-Level.mydomain.com”有效,但对“somthing.third-Level.mydomain.com”无效,后者需要像“*.third-Level.mydomain.com”这样的通配符'。

您可以从 Let's Encrypt (https://letsencrypt.org/) 获得免费且有效的通配符证书

【讨论】:

    【解决方案2】:

    并且,不要将端口 443 添加到 000-default.conf,而是使用 default-ssl.conf 文件。使用a2enconf default-ssl 启用default-ssl.conf,然后从000-default.conf 中删除443。然后,使用systemctl restart apache2 重新启动/重新加载 apache

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2013-03-07
      • 2014-04-13
      • 2014-09-02
      • 2019-11-11
      • 2011-06-07
      • 2015-11-21
      • 2016-03-11
      • 2014-06-04
      相关资源
      最近更新 更多