S3静态网站访问报NoSuchBucket错误,请求域名与桶名不符求助
解决S3静态网站404(NoSuchBucket)问题的方案
问题核心
你访问时出现的NoSuchBucket错误提示目标桶是www.travissalmon.com,但实际桶名为travissalmon.com,且隐身窗口能正常打开,说明问题大概率出在浏览器缓存或DNS子域名配置上。
具体解决步骤
1. 清除浏览器缓存和Cookie
隐身窗口不加载常规浏览器的缓存,先清掉当前浏览器的缓存试试:
- Chrome按
Ctrl+Shift+Delete(Windows)或Cmd+Shift+Delete(Mac),勾选「缓存的图片和文件」「Cookie及其他网站数据」,点击清除后重启浏览器再访问。
2. 补全www子域名的访问配置
如果用户可能通过www.travissalmon.com访问你的网站,需要补全这个子域名的配置,有两种可选方式:
- 方式一:创建www子域名桶并设置重定向
新建名为www.travissalmon.com的S3桶,开启静态网站托管,在配置里选择「重定向请求」,目标桶填travissalmon.com,这样访问www子域名时会自动跳转到主域名。 - 方式二:DNS配置CNAME指向主桶端点
在你的DNS服务商后台,给www子域名添加CNAME记录,指向travissalmon.com的S3网站端点(端点地址可以在S3桶的「静态网站托管」页面找到,格式类似travissalmon.com.s3-website-us-east-1.amazonaws.com)。
3. 验证桶权限配置
虽然你已经配置了桶策略,还是可以快速核对:
- 确认桶的「公共访问设置」里四个阻止项都已关闭(包括阻止公有访问、阻止新公有桶策略等)。
- 检查桶策略的
Resource字段arn:aws:s3:::travissalmon.com/*有没有拼写错误,确保覆盖桶内所有文件的访问权限。
4. 测试DNS解析生效情况
打开命令行执行nslookup www.travissalmon.com,查看返回的IP是否和S3网站端点的IP一致。如果返回地址不对,说明DNS记录还在生效中,耐心等待一段时间(TTL设置决定生效速度,通常几分钟到几小时)。
内容的提问来源于stack exchange,提问作者Travis Salmon
相关产品推荐
相关产品推荐

