AWS–s3 > Cloudflare 重写 url

AWS–s3 > Cloudflare rewrite url

我使用 AWS–s3 进行静态网站托管,运行 通过 Cloudflare 服务(包括 DNS)。 SEO 最佳做法是从 URL 名称中截断 .html,同时避免重复内容。我使用 nginx 实现了预期的结果,并且想知道是否有可能使用 s3 或 Cloudflare。我的直觉告诉我没有。

基本要求是:example.com/about.html 应该 重写 (不是重定向)到 example.com/about。存储在 s3 上的文件名应该保留,显然,*.html.

我偶然发现的 hack 是:

  1. 将服务器上的文件名更改为 about(不带文件扩展名)。
  2. 然后,在 s3 控制台中,将元数据 content-type 改回 text/html

我认为这很糟糕 "solution":访问 *.html 会导致 404。当然,除非您创建一个扩展名为 .html 的重复文件,然后可能在 Cloudflare 中创建 url 转发规则。它不仅非常混乱,而且无法缩放。

有没有更好的方法?

My gut tells me no.

你的直觉既正确又不正确。

S3 不能兼得;不支持隐含的扩展......但是,有一种方法可以做到这一点,同时保持(可以说)SEO-sane。

而不是 aboutabout.html 你可以 aboutabout/about/index.html.

在存储桶上启用索引文档。如果浏览器请求 /about 而这不是一个对象,它将看到 301 Moved PermanentlyLocation: /about/ 的响应。

当 S3 看到 /about/ 的请求时,它将 return /about/index.html 的内容而不发出重定向。


当然,如果您在控制台中上传文档时手动设置内容类型,则可以避免在控制台中更改 Content-Type 的原始解决方法。有很多内容类型控制台在上传时不会自动设置,所以我习惯于手动设置它们,反正。