通过HTTPS访问自定义域名时S3网站404重定向规则不触发问题
问题根因
该问题的核心原因是CloudFront源站配置错误,选择了S3 REST API端点而非S3静态网站托管端点:
- S3 REST API端点(格式通常为
bucket-name.s3.region.amazonaws.com)仅提供对象存储原生API能力,不支持静态网站托管的Redirection Rule(重定向规则)、自定义错误文档等功能,请求不存在的对象时会直接返回XML格式的NoSuchKey错误。 - 只有你直接访问正常的S3静态网站托管端点(格式为
bucket-name.s3-website.region.amazonaws.com)才会执行你配置的重定向规则。
解决步骤
调整CloudFront源站配置
进入CloudFront控制台,找到对应cdn.example.cz的分发配置,打开「源」标签页,选中当前关联的S3源,将源域名手动修改为你的S3静态网站端点:cdn.example.cz.s3-website.ap-southeast-2.amazonaws.com,不要选择控制台自动联想的S3 REST端点。修改源站请求协议
S3静态网站托管端点仅支持HTTP协议访问,因此将该源的「源协议策略」设置为仅HTTP(HTTP Only),避免CloudFront用HTTPS请求S3静态网站端点导致连接失败。清理旧缓存(可选)
保存CloudFront配置后等待分发生效(通常耗时5~10分钟),如果之前的404错误响应已经被CloudFront缓存,可以提交路径为/*的缓存失效任务,清除旧的缓存内容。
验证
配置生效后访问https://cdn.example.cz/file.png,确认重定向规则正常触发,不再返回XML格式的NoSuchKey错误即可。
内容的提问来源于stack exchange,提问作者AamirR
相关产品推荐
相关产品推荐

