首页 > 解决方案 > 导航到网站会产生代码:使用 cloudflare 时的 NoSuchBucket

问题描述

所以我目前在域下使用 Cloudflare 作为我的 DNS,www.movez.co但由于某种原因,当有人http://movez.co直接在他们的网络浏览器中输入时,它会吐回:

404 Not Found

Code: NoSuchBucket
Message: The specified bucket does not exist

BucketName: movez.co

RequestId: 64038C65xxx

HostId: xxx

当然,我们的 bucked 是命名www.movez.co的,我们的根记录指向正确的存储桶 ( www.movez.co.s3-website-us-east-1.amazonaws.com),我们的 www CNAME 记录作为别名指向根。该存储桶可公开访问,但由于某些原因,特定 iPhone 用户被放入 404 页面。

谁能帮我弄清楚为什么会这样?
我已尝试清除缓存,但我们的注册商(GoDaddy)没有重定向重定向记录。

标签: amazon-web-servicesamazon-s3cloudflare

解决方案


这里的问题是 CNAME 在 DNS 级别上运行,而不是在 HTTP 级别上运行。CNAME 会导致请求被转发到 的 IP 地址www.movez.co.s3-website-us-east-1.amazonaws.com,但 HTTP 请求仍会说它正在寻找moves.co。HTTP 请求不包含请求中的www.movez.co.s3-website-us-east-1.amazonaws.com任何www.moves.co位置,因此亚马逊无法知道该请求应该从www.movez.co.

我建议在 Cloudflare 中设置一个页面规则,将客户端的浏览器movez.cowww.movez.co. 如果您不想使用浏览器重定向,那么您需要配置 Amazon 以理解movez.co(可能通过创建一个完整的单独存储桶),或者您可以使用 Cloudflare Worker 来重写 HTTP 请求(但是您'为此,您需要向 Cloudflare 支付额外费用)。


推荐阅读