首页 > 解决方案 > 如何在 AWS S3 支持的网站中重定向裸 URL?

问题描述

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

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

是否可以使用重定向规则来实现这一目标?


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

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

标签: amazon-web-servicesamazon-s3url-rewritingstatic-site

解决方案


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

S3 的文档指定以下内容

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

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

或者,如果您想要服务器 index.html 的所有路径,此线程可能很有用


推荐阅读