Rya*_*all 12 apache-http-server virtual-host
我有一个带有多个 VirtualHosts 的 Apache2 配置。我的 DNS 设置为*.<domain>.<tld>在多个域上接受。一切正常,但如果我去,something-random-here.example.com我似乎选择了一个无效的 VirtualHost(我猜是它找到的第一个或最后一个)。如果没有任何 VirtualHost 条目与域或子域匹配,有没有办法告诉 Apache 使用某些规则?我最好想返回 404。
Mor*_*oth 12
如果没有名称匹配,Apache 将使用第一个虚拟主机。只需将一个新的虚拟主机配置为第一个具有随机名称的虚拟主机,显示您喜欢的任何内容 - 或返回 404 页面。
小智 5
通配符包括您的站点配置文件:
Include path/to/site/confs/*httpd.conf
Run Code Online (Sandbox Code Playgroud)
组织您的站点 conf 文件,以便它们按预期顺序加载。例子...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
等等...
Apache 将按顺序阅读这些内容。然后创建一个总是最后加载以捕获任何不匹配的虚拟主机并返回 404 而不是加载默认站点。
99-catchall-httpd.conf
<VirtualHost *:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost *:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
请务必将端口替换为您的 httpd 侦听的任何端口。或者,如果您让 httpd 监听特定接口,则需要为每个接口添加一个包罗万象的东西,如下所示:
<VirtualHost 192.168.1.101:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.101:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.102:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.102:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。我使用此方法按我指定的顺序加载站点,并防止不匹配的虚拟主机无意中加载意外站点。
| 归档时间: |
|
| 查看次数: |
13047 次 |
| 最近记录: |