有没有办法可以忽略键前缀?或者在不更改地址栏中的网址的情况下重定向到网址?
例如,我有以下网址x.com/y/uuid/
我希望s3将我转到x.com/y/index.html
而不删除/替换/uuid/
答案 0 :(得分:1)
重定向到网址而不更改地址栏中的网址
然后它不会是重定向。根据定义,HTTP重定向将浏览器发送到新位置,并重写地址栏。
某些Web服务器软件有一个内部重写URL以供后续处理的概念,以便目标解析到不同于其他路径的路径,但S3不支持此 - 除了自动索引文档的情况,其中example.com/foo
将触发浏览器重定向到example.com/foo/
,然后在内部由S3重写以返回具有密钥foo/index.html
的对象(如果存在)。 (浏览器重定向保持相对路径清晰;没有它,/foo/index.html
中的相对路径将被错误地解释为相对于根,而不是相对于/foo/
- 所有正确行为的Web服务器都执行此操作在渲染索引文档时。)
S3自定义错误文档当然也基本上是内部重写。
但是你所考虑的并不受S3的支持。
S3前面的CloudFront甚至可以与您正在寻找的完全相反,例如,example.com/bar.html
可以作为{{1的请求呈现给后端没有浏览器重定向(通过配置自定义原点并将Origin Path设置为example.com/foo/bar.html
),但两种服务都不支持在没有浏览器重定向的情况下删除/隐藏/屏蔽路径部分。