在S3路由策略中路由时忽略键前缀

时间:2016-09-01 22:12:25

标签: amazon-web-services amazon-s3

有没有办法可以忽略键前缀?或者在不更改地址栏中的网址的情况下重定向到网址?

例如,我有以下网址x.com/y/uuid/我希望s3将我转到x.com/y/index.html而不删除/替换/uuid/

1 个答案:

答案 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),但两种服务都不支持在没有浏览器重定向的情况下删除/隐藏/屏蔽路径部分。