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

使用AWS S3托管静态网站绑定Cloudflare子域名遇404错误求助

解决S3自定义CNAME访问404的办法

1. 给S3桶添加自定义域名配置

你的桶名是yallashop-website,但访问子域名时,S3会把yallashop.aybiz.com当成桶名查找,因此出现「NoSuchBucket」错误。需要在S3桶的静态网站设置里添加该子域名作为备用域名:

  • 操作路径:打开S3控制台,找到目标桶 → 点击「属性」标签 → 下拉到「静态网站托管」区域 → 在「备用域名」输入框中填入yallashop.aybiz.com,保存设置。

2. 调整Cloudflare的DNS与SSL设置

  • 确认CNAME记录的代理状态为开启(DNS记录旁的橙色云朵图标亮起),这样Cloudflare才能代理请求并处理SSL层。
  • 由于你使用「Flexible」SSL模式,Cloudflare与S3之间走HTTP协议(你的原S3端点已支持HTTP),可在Cloudflare的「SSL/TLS → Edge Certificates」中开启「始终使用HTTPS」,强制用户通过HTTPS访问子域名。

3. 配置S3桶的访问权限

  • 若网站是公开可访问的,先关闭S3桶的公共访问限制:进入桶的「权限」标签 → 找到「阻止公共访问」选项 → 取消所有勾选的限制项并保存。
  • 添加桶策略,允许来自子域名的请求访问桶内资源,复制以下策略并替换为你的桶名:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::yallashop-website/*",
      "Condition": {
        "StringEquals": {
          "aws:Referer": ["https://yallashop.aybiz.com/", "http://yallashop.aybiz.com/"]
        }
      }
    }
  ]
}

4. 配置Cloudflare转发正确的Host头

这是避免S3误判桶名的关键步骤:

  • 在Cloudflare控制台进入「规则 → 页面规则」,添加一条新规则:
    • 匹配URL填写yallashop.aybiz.com/*
    • 动作选择「添加自定义HTTP头」,头名称填Host,值填你的S3原始端点yallashop-website.s3-website-us-west-2.amazonaws.com
    • 保存规则,等待几分钟生效。

5. 测试访问

等待DNS与规则生效(通常需要几分钟到1小时),再分别测试http://yallashop.aybiz.com和https://yallashop.aybiz.com,即可实现与原S3端点一致的访问效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:12:54