AWS S3静态网站多路由规则优先级及请求匹配结果咨询
AWS S3静态网站重定向规则匹配结果解析
问题场景
现有S3静态网站重定向规则配置如下:
[ { "Condition": { "KeyPrefixEquals": "docs/foo" }, "Redirect": { "ReplaceKeyPrefixWith": "foo/" } }, { "Condition": { "KeyPrefixEquals": "docs/foo/bar" }, "Redirect": { "ReplaceKeyPrefixWith": "bar/" } } ]
针对请求路径docs/foo/bar/baz,最终会路由至哪个对象?
结论与原因
最终会路由至foo/bar/baz对象。
AWS S3静态网站的重定向规则遵循顺序匹配优先级:规则数组中的条目会从上到下依次检查,只要找到第一个满足条件的规则就立即执行,后续规则不再进行匹配。
在上述配置中,第一个规则的KeyPrefixEquals为docs/foo,请求路径的前缀完全符合该条件,因此会触发这条规则——将路径中的docs/foo前缀替换为foo/,得到目标路径foo/bar/baz。第二个规则虽然匹配更精确的docs/foo/bar前缀,但由于第一个规则已经先匹配成功,所以不会被执行。
内容的提问来源于stack exchange,提问作者Philip Couling
相关产品推荐
相关产品推荐

