You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

子域名访问时重定向到父域名的原因及解决方法是什么?

排查和解决步骤

第一步:先确认重定向来源

先不要用浏览器测试(避免旧的重定向缓存干扰结果),直接在命令行执行以下命令查看响应头:

curl -I http://sub.example.com

看返回结果里的Server字段和Location字段,判断是Nginx返回的重定向还是Node.js后端返回的重定向。

常见原因和对应解决方案

  • 原因1:浏览器缓存了旧的重定向规则
    解决:用浏览器无痕模式访问,或者清空浏览器DNS缓存、静态资源缓存后重试,这是最常见的低级错误诱因。
  • 原因2:Node.js后端配置了错误的重定向逻辑
    你Nginx配置里已经通过proxy_set_header Host $host把真实请求的域名传给了后端,如果Node.js服务里配置了域名校验、默认baseUrl或者重定向规则(比如只允许www.sub.example.com访问,其他域名都跳转到主域名),就会出现这个问题。
    解决:检查Node.js代码里的域名相关配置,比如Express框架要检查有没有全局重定向中间件、vhost配置,或者baseUrl参数是否写死为example.com。
  • 原因3:Nginx存在冲突的配置项
    你当前配置里加载了两个额外的配置目录:
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/default.d/*.conf;
    
    如果这两个目录下有其他监听80端口的server块,且匹配优先级比你当前写的server块更高,就可能匹配到sub.example.com的请求并触发重定向。
    解决:执行以下命令打印所有加载的Nginx配置,排查有没有冲突的server块:
    sudo nginx -T | grep -A 20 "server_name"
    
    找到冲突配置后调整优先级或者删除冗余配置,之后执行sudo nginx -s reload重启生效。
  • 原因4:DNS/CDN侧配置了重定向规则
    如果你给域名配置了CloudFront等CDN服务,或者Route53里配置了重定向记录,也可能触发该跳转。可以检查AWS相关服务的规则配置。

内容的提问来源于stack exchange,提问作者Ilya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:24:02