S3静态主机重定向和strip slug

时间:2016-10-28 08:19:42

标签: amazon-s3

是否可以创建静态网站重定向规则,重定向www.domain1.com/* --> www.domain2.com而不维护slug?

如果允许使用通配符,可以这样:

<RoutingRules>
  <RoutingRule>
  <Condition>
    <KeyPrefixEquals>*</KeyPrefixEquals>
  </Condition>
  <Redirect>
    <HostName>www.domain2.com</HostName>
    <ReplaceKeyPrefixWith>/</ReplaceKeyPrefixWith>
  </Redirect>
  </RoutingRule>
</RoutingRules>

1 个答案:

答案 0 :(得分:6)

你必须像S3一样思考。&#34;

&#34;密钥前缀&#34;是一个前缀,根据定义,空字符串是所有字符串的前缀 - 因为left(anystring,len('')) == ''

所以你不需要通配符 - 你应该能够简单地说出来:

<KeyPrefixEquals></KeyPrefixEquals>

然后,您不想替换前缀 - 您想要替换整个密钥,所以看起来像这样:

<ReplaceKeyWith></ReplaceKeyWith>

你问......为什么它是空的而不是/

这是因为,在S3模型中,键空间不以/开头。 bucket.example.com/foo的路径为/foo,但其密钥实际为foo