相关疑难解决方法(0)

通配符 DNS、apache2 上的 VirtualHosts、未使用的子域的 404

在由包含通配符条目的 DNS 链接的 Apache2 服务器上,例如 *.example.com,在任何 VirtualHosts 中未定义为 ServerNames 的子域指向第一个定义的 VirtualHost,在我的示例中,这是 000-default。

我的问题:

如何获得未使用的子域(未在任何虚拟主机中使用的子域)以向请求客户端返回 404 错误?这也必须最好在服务器日志中显示为 404。

我研究了以下可能性:

  • 将任何无效的子域重定向到主页或其他页面。

    这种方法的问题是,当有人以 this.company.sucks.example.com 链接到您的网站时,客户端将看到您的主页,或者在我的情况下,如果我不重定向,则会看到 000-default。感谢迈克指出这一点。(“吮吸”等的正则表达式绝对不是一种选择)

  • 让默认的 VirtualHost 指向一个不存在的目录。

    Apache 有点不喜欢这个,每次重新加载时都会发出警告。除了警告之外,一切似乎都很好。这似乎是一个黑客。对任何人来说,这似乎是一个问题(无论多么小)?

  • 将默认 VirtualHost 指向禁止 index.php 的文件夹,从而创建 403 状态代码。

    这令人困惑,并使以下内容变得过于复杂:例如,您为每个用户使用一个子域(显然,这是使用通配符 DNS 的一个重要原因),并且用户可以在 username.example 中查看彼此的配置文件。 com。这个解决方案让用户感到困惑,完全不是我想要做的。

我理想的解决方案会让用户知道在他输入的 url 上没有任何东西可以查看。最好带有 404 和输入地址的错误日志条目(不是其他地址)。

任何帮助将不胜感激!

wildcard subdomain virtualhost http-status-code-404 apache-2.2

5
推荐指数
1
解决办法
4085
查看次数