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

访问绑定CloudFront的example.com跳转至EC2公网DNS问题求助

结论

这是CloudFront配置问题,和Apache配置无关。

根因定位

你提供的两个关键现象已经可以直接定位问题范围:

  • 直接访问EC2弹性IP不会触发跳转,说明Apache本身的服务逻辑正常
  • 访问CloudFront分配的自带域名、你绑定的自定义域名都会触发到EC2公网域名的跳转,说明问题出在CloudFront向源站转发请求的环节

具体触发逻辑:
默认CloudFront向源站转发请求时,携带的Host请求头为你填写的源站域名ec.xxxxxx.amazonaws.com。Apache处理目录类请求(如/phpmyadmin缺末尾/)、WordPress初始化生成跳转链接时,都会读取请求中的Host头拼接跳转地址,最终就会返回跳转到EC2公网域名的响应。

修复方案

无需调整Apache配置,仅修改CloudFront源站请求策略即可:

  1. 打开CloudFront控制台,进入对应分发的「源和源组」配置页
  2. 编辑绑定的EC2源站,找到「源请求策略」配置项
  3. 两种配置可选:
    • 直接使用AWS官方托管的Managed-AllViewer策略,该策略会将用户端请求的所有头(包含Host头)原样传递给源站
    • 自定义源请求策略,仅在允许传递的头列表中添加Host头即可
  4. 保存配置后等待CloudFront分发生效(通常需要5~10分钟),清理浏览器缓存后测试即可。

验证方法

你可以在EC2本地执行curl命令直接验证逻辑:

  • 执行curl -v -H "Host: ec.xxxxxx.amazonaws.com" http://EC2弹性IP/phpmyadmin,可以看到返回的301响应的Location头为EC2公网域名的跳转地址,和你遇到的现象完全一致
  • 执行curl -v -H "Host: example.com" http://EC2弹性IP/phpmyadmin,返回的跳转地址为example.com域名的地址,可验证判断正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:18:02