Debian 10下Apache如何将主域名设为IP访问默认虚拟主机
原理说明
Apache 会按sites-enabled目录下配置文件的字典序加载虚拟主机,*:80端口下首个加载的虚拟主机即为IP直接访问时的默认站点。当前admin.example.net.conf以字母a开头,字典序优先于example.net.conf,因此被识别为默认站点。
解决方案(二选一即可)
方案一:调整配置加载优先级(推荐)
Debian Apache 约定以数字前缀标识配置加载优先级,数字越小优先级越高:
- 重命名主域名配置文件,添加最高优先级前缀:
sudo mv /etc/apache2/sites-available/example.net.conf /etc/apache2/sites-available/000-example.net.conf
- 禁用旧配置软链接:
sudo a2dissite example.net.conf
- 启用新命名的主域名配置:
sudo a2ensite 000-example.net.conf
该方案无需修改原有配置内容,后续VPS更换IP也无需调整,适配性更强。
方案二:显式绑定VPS IP到主域名虚拟主机
编辑example.net.conf,在ServerAlias行追加你的VPS公网IP:
<VirtualHost *:80> ServerName example.net # 将1.2.3.4替换为你的VPS实际公网IP ServerAlias www.example.net 1.2.3.4 DocumentRoot /var/www/example.net # 其余原有配置保持不变 </VirtualHost>
生效操作
- 验证配置语法合法性,避免服务异常:
sudo apache2ctl configtest
- 输出
Syntax OK后重载Apache服务:
sudo systemctl reload apache2
- 测试访问前清空浏览器缓存,避免历史301跳转缓存干扰验证结果。
内容的提问来源于stack exchange,提问作者Alessandro
相关产品推荐
相关产品推荐

