【问题标题】:How to redirect a naked URL in an AWS S3-powered web site?如何在 AWS S3 支持的网站中重定向裸 URL?
【发布时间】:2018-08-07 15:03:05
【问题描述】:

我将在 S3 上托管一个静态网站。问题在于 S3-as-a-web-server 背后的 Web 引擎不会将 http://example.com/hello/ 转换为 http://example.com/hello/index.html

在配置网站时,提供了根文档(调用http://example.com时将显示的那个),但没有任何更深的URL(例如我的示例)。

是否可以使用redirect rules 来实现?


我其实有一个解决这个问题的方法,但是真的很复杂:

  • 在 S3 存储桶上托管网站
  • 部署源自该存储桶的 CloudFront 实例
  • 使用 Lambda@Edge 在调用 CloudFront 后重写调用

我希望有更直接的东西(我对重定向规则抱有希望,尽管“重定向”表明已经实现了某些东西,但在我的问题中并非如此,因为 S3 似乎不明白 http://example.com/hello/ 是什么.

【问题讨论】:

标签: amazon-web-services amazon-s3 url-rewriting static-site


【解决方案1】:

当您指定默认索引文件并希望在子路径中提供 index.html 时, 您需要在每个级别都有 index.html。

The documentation for S3 指定以下内容

如果您在存储桶中创建这样的文件夹结构,您必须有一个 每个级别的索引文档。当用户指定一个 URL 时 类似于文件夹查找,是否存在尾部斜杠 决定网站的行为。例如,以下 带有斜杠的 URL 返回 photos/index.html 索引 文件。

http://example-bucket.s3-website-region.amazonaws.com/photos/ 但是, 如果您从前面的 URL 中排除尾部斜杠,Amazon S3 首先在桶中查找对象照片。如果照片对象 没有找到,然后它搜索索引文档, 照片/index.html。如果找到该文档,Amazon S3 将返回 302 找到消息并指向照片/键。对于后续请求 到 photos/,Amazon S3 返回 photos/index.html。

或者,如果您想要服务器 index.html 的所有路径,this thread might be useful

【讨论】:

    猜你喜欢
    • 2017-10-27
    • 2020-09-21
    • 2021-12-16
    • 1970-01-01
    • 2021-06-24
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多