You need to enable JavaScript to run this app. Apache2服务器无法正确显示网站:裸域名访问返回默认页
优惠活动
大模型
产品
解决方案
定价
更多

Apache2服务器无法正确显示网站:裸域名访问返回默认页

Apache2 裸域名访问返回默认页问题排查方案

核心成因

www子域访问正常、裸域名返回Apache默认页,本质是虚拟主机路由匹配规则未覆盖裸域名请求:

  • Apache虚拟主机按配置加载顺序匹配请求携带的Host头,最先加载的已启用虚拟主机,会成为所有未明确匹配Host请求的兜底响应站点
  • 通常这类问题都是站点配置仅声明了www域名的ServerName,未将裸域名纳入匹配范围,导致访问mydomain.com的请求直接命中排在加载顺序第一位的Apache默认示例站点。

分步修正操作

  • 检查站点核心配置
    打开/etc/apache2/sites-available/mydomain.com.conf,核对两个关键配置项:

    • ServerName 条目是否仅填写了www.mydomain.com
    • 是否存在ServerAlias条目覆盖裸域名匹配
      正确的站点核心配置参考:
    <VirtualHost *:80>
        ServerName www.mydomain.com
        ServerAlias mydomain.com
        DocumentRoot /var/www/mydomain.com
        <Directory /var/www/mydomain.com>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/mydomain_error.log
        CustomLog ${APACHE_LOG_DIR}/mydomain_access.log combined
    </VirtualHost>
    

    其中ServerAlias mydomain.com的作用是明确告知Apache,这个虚拟主机需要响应裸域名的请求,缺失这行配置时,Apache仅会将携带www前缀的请求路由到目标站点目录。

  • 调整配置加载优先级
    执行ls -l /etc/apache2/sites-enabled/查看当前生效配置的加载顺序:Apache会按文件名的字典序加载sites-enabled路径下的所有配置,默认示例站点000-default.conf因文件名开头数字最小,会最先被加载,成为所有未匹配请求的兜底站点。
    可二选一完成调整:

    • 执行a2dissite 000-default直接禁用Apache默认示例站点
    • 将自己的站点配置文件重命名为字典序更靠前的名称(如00-mydomain.com.conf),让站点配置先于默认站点被加载
  • 校验配置并重载服务
    所有配置修改完成后,执行apache2ctl configtest检查配置语法,终端输出Syntax OK后,执行systemctl reload apache2使配置生效。
    可通过本地curl命令验证路由是否正确:执行curl -H "Host: mydomain.com" http://127.0.0.1,返回目标站点首页内容而非Apache默认页,即代表配置生效。

易踩疏漏点

  • 仅在DNS层面给裸域名配置了指向VPS的解析记录,但未在Apache虚拟主机中做对应匹配,导致请求已到达VPS但Web服务未正确路由
  • 修改配置文件后未重载Apache服务,配置未实际加载生效
  • 仅将配置文件存放在sites-available路径下,未执行a2ensite mydomain.com.conf生成软链接到sites-enabled路径,配置根本未被Apache读取

内容的提问来源于stack exchange,提问作者Hard Code Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 17:06:01