主域名www.example.com跳转至子域名app.example.com问题求助
解决CloudFront多域名访问自动跳转问题
问题场景
我在GoDaddy持有域名www.example.com,并在AWS Route 53配置了托管区域。原记录中example.com、www.example.com指向Wix站点,app.example.com通过别名A记录指向CloudFront分发app.cloudfront.net。修改后将三个域名都改为别名A记录指向该CloudFront分发,但访问www.example.com时会自动跳转到app.example.com,需要实现所有域名直接由CloudFront提供服务,无跳转。
排查与解决步骤
1. 确认CloudFront备用域名配置
务必让CloudFront分发包含所有三个域名作为备用域名:
- 登录AWS控制台进入CloudFront,找到目标分发,编辑常规配置
- 在**备用域名(CNAMEs)**中添加
example.com、www.example.com、app.example.com - 确保关联的SSL证书覆盖所有这些域名(推荐用ACM的通配符证书
*.example.com或包含全部域名的SAN证书) - 保存后等待CloudFront部署完成(约15-30分钟)
2. 检查CloudFront缓存行为的主机头转发
错误的主机头设置可能导致源站识别域名异常引发跳转:
- 进入分发的行为标签页,编辑默认行为(或对应路径的行为)
- 在HTTP头转发设置中,将主机头设为全部转发,或自定义包含三个域名
- 同时检查是否配置了Lambda@Edge/CloudFront Functions,确认没有自动跳转的逻辑
3. 排查源站的跳转规则
如果CloudFront的源站是S3或自定义服务器,检查源站本身的配置:
- 若源是S3静态网站托管,查看静态网站托管设置,确认没有开启重定向,或首页/错误页配置未触发跳转
- 若源是EC2/Nginx/Apache服务器,检查配置文件中的
rewrite、redirect规则,确保没有强制跳转到app.example.com的设置
4. 清除CloudFront缓存
旧缓存可能保留了跳转规则,需手动清除:
- 在分发的缓存标签页,点击创建无效
- 输入
/*清除全部缓存,等待无效化完成(几分钟即可)
5. 刷新本地DNS缓存
本地DNS缓存可能还保留旧记录,执行对应命令刷新:
- Windows:
ipconfig /flushdns - Mac:
sudo dscacheutil -flushcache
内容的提问来源于stack exchange,提问作者brijesh chowdary lavu
相关产品推荐
相关产品推荐

