CloudFront与S3 301重定向显示存储桶裸端点URL问题求助
解决www.prochoice.com.tr重定向后显示S3裸端点的问题
我来帮你搞定这个地址栏显示S3端点的问题——这是因为当前的重定向配置里,你让S3桶跳转到了主域名的S3端点URL,而不是直接跳转到你的正式主域名prochoice.com.tr。咱们一步步调整:
1. 修正重定向S3桶的配置
首先修改你为www.prochoice.com.tr创建的重定向存储桶的静态网站托管设置:
- 进入S3控制台,找到这个重定向桶,打开「静态网站托管」配置
- 选择「重定向所有请求到另一个主机名」
- 目标主机名填写
prochoice.com.tr(不要填S3端点URL!) - 协议选择
HTTPS(确保重定向到加密的主域名) - 保存配置
这样一来,这个S3桶收到请求后,会直接返回301重定向到你的正式主域名,而不是S3的内部端点。
2. 调整CloudFront分发的关键配置
接下来检查你的www域名对应的CloudFront分发:
- 源设置:确保源域名是重定向S3桶的静态网站端点(比如
www.prochoice.com.tr.s3-website.eu-central-1.amazonaws.com),并且将「源协议策略」设为HTTP Only(因为S3静态网站端点只支持HTTP,CloudFront会帮你转成HTTPS给用户) - 查看器协议策略:设为
Redirect HTTP to HTTPS,强制用户使用加密连接 - SSL证书:确保你在ACM(美国东部区域us-east-1)申请的证书包含
www.prochoice.com.tr和prochoice.com.tr两个域名,并且已经关联到这个CloudFront分发 - 缓存行为:在缓存行为里,确保「允许的HTTP方法」包含
GET, HEAD,并且开启「转发所有请求头」或者至少转发Host头(保证S3桶能正确处理重定向)
3. 验证重定向链
配置完成后,用curl命令测试一下重定向是否正确:
curl -v https://www.prochoice.com.tr
你应该看到响应的Location头直接指向https://prochoice.com.tr,而不是S3的端点URL。此时浏览器访问www域名时,地址栏会先显示www.prochoice.com.tr,然后自动跳转到主域名,不会暴露S3的内部地址。
额外建议:主域名也通过CloudFront托管
如果你的主域名prochoice.com.tr现在是直接指向S3桶的,建议也为它创建一个CloudFront分发,这样整个访问流程都是通过CloudFront的HTTPS链路,既安全又能避免暴露S3端点。只需要将主域名的Route 53 A记录别名指向对应的CloudFront分发即可。
内容的提问来源于stack exchange,提问作者Ergun
相关产品推荐
相关产品推荐

