Ubuntu 16.04下Apache 2.4子域名配置无效问题求助
解决Apache子域名跳转至主页的问题
看起来你犯了一个典型的命令使用错误,这大概率是导致问题的核心原因——你用了a2enmod命令来处理站点配置文件,但a2enmod是用来启用Apache模块的,而启用站点配置应该用a2ensite命令!
下面是一步步的排查和修复步骤:
1. 修正站点启用命令
首先执行正确的启用命令:
sudo a2ensite dnd.devosmium.xyz.conf
执行后会提示站点已启用,若默认站点(比如000-default.conf)可能干扰子域名访问,可以禁用它:
sudo a2dissite 000-default.conf
2. 验证站点配置文件的关键项
确认你的dnd.devosmium.xyz.conf配置里包含这些必要内容:
- 准确的
ServerName dnd.devosmium.xyz,确保没有拼写错误 - 正确的
DocumentRoot路径,指向子域名对应的网站目录(比如/var/www/dnd.devosmium.xyz/public_html) - 给目录设置合适的权限,保证Apache用户(通常是
www-data)能访问:
sudo chown -R www-data:www-data /var/www/dnd.devosmium.xyz/public_html sudo chmod -R 755 /var/www/dnd.devosmium.xyz
3. 检查Apache配置语法
在重启服务前,先验证配置是否有语法错误,避免服务启动失败:
sudo apache2ctl configtest
如果输出Syntax OK说明配置没问题;若有错误,根据提示修正配置文件即可。
4. 重启Apache服务
执行完整的重启命令,确保新配置生效:
sudo systemctl restart apache2
5. 确认DNS与本地解析
- 用
nslookup dnd.devosmium.xyz或ping dnd.devosmium.xyz验证子域名是否正确解析到你的服务器IP - 如果是本地测试,需要在
/etc/hosts文件中添加一行解析规则:
你的服务器IP dnd.devosmium.xyz
6. 排查全局重定向规则
检查主站点的配置文件或根目录下的.htaccess文件,看看是否存在全局重定向规则(比如把所有请求跳转到主页)。如果有,需要添加例外规则,允许子域名的请求正常访问。
完成这些步骤后,重新访问dnd.devosmium.xyz,应该就能正常指向子域名对应的站点了。
内容的提问来源于stack exchange,提问作者Muirrum
相关产品推荐
相关产品推荐

