Apache技术求助:禁用非预期可访问的w.site.com、ww.site.com子域名
找到
w.site.com和ww.site.com配置位置的排查步骤 兄弟,我懂你现在的困惑——这俩域名能正常访问,但翻遍sites-available的配置文件都找不到对应ServerName/ServerAlias,咱们一步步来挖:
1. 先查Apache全局配置
Ubuntu上的Apache除了虚拟主机的.conf文件,全局配置里也可能藏着别名:
- 打开
/etc/apache2/apache2.conf,搜一搜有没有ServerAlias或者针对w.*/ww.*的规则 - 瞅瞅
/etc/apache2/conf-available/目录下的所有文件,有些全局别名会单独放在这里
2. 确认所有启用的虚拟主机
有时候sites-enabled里的软链接指向的配置文件你可能没注意到,先跑这个命令列全所有生效的虚拟主机:
ls -l /etc/apache2/sites-enabled/
每个软链接都对应sites-available里的源文件,挨个打开看看,说不定w和ww的别名就藏在某个你漏看的启用配置里。
3. 检查默认虚拟主机
如果没有匹配的域名配置,Apache会把请求扔给默认虚拟主机处理。默认主机一般是000-default.conf,或者是第一个加载的虚拟主机:
- 打开
/etc/apache2/sites-available/000-default.conf看看有没有相关设置 - 另外你可以对比下
w.site.com访问的内容和site.dk的内容是不是一样——如果一样,那大概率这俩域名没单独配置,是默认主机(或者你的site.dk配置因为加载顺序成了默认主机)在处理它们的请求。
4. 用Apache命令直接看运行时配置
这是最直接的方法!跑这个命令导出当前Apache生效的所有配置:
apache2ctl -S
输出里会清清楚楚显示每个域名对应的虚拟主机、ServerName/ServerAlias,还有对应的配置文件路径——直接就能定位到这俩域名的配置在哪!
5. 别忘了Virtualmin面板的配置
从你的日志路径/var/log/virtualmin/来看,这台服务器用了Virtualmin管理面板,那登录面板看看:
- 打开
site.dk的虚拟主机设置,瞧瞧有没有在面板里偷偷加了w.site.com和ww.site.com作为别名(面板有时候会生成额外的配置片段,不会直接写到你手动看的.conf里) - 检查面板的全局域名规则,有没有自动添加短前缀别名的设置
最后,要是找到了配置位置,修改完记得重启Apache生效:
systemctl restart apache2
内容的提问来源于stack exchange,提问作者UnknownFrequency
相关产品推荐
相关产品推荐

