我正在使用S3存储桶来托管静态网站mydomain.com
。最初的博客内容布局是
现在我将所有博客内容保存在blog
目录中。
我在mydomain.com上启用了网站托管服务。我想使用S3's custom redirection rules来重定向缺少“blog”前缀的旧网址。例如,mydomain.com/index.html
应重定向到mydomain.com/blog/index.html
。
我试过
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>blog/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
和
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>mydomain.com/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>mydomain.com/blog</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
但第一个导致重定向循环(不奇怪),第二个不起作用。
答案 0 :(得分:2)
您需要使用重定向规则并添加ReplaceKeyPrefixWith项:
<RoutingRules>
<RoutingRule>
<Redirect>
<Protocol>https</Protocol>
<HostName>mydomain.com</HostName>
<ReplaceKeyPrefixWith>blog/</ReplaceKeyPrefixWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
注意:某些浏览器缓存可能非常粘,因此请确保您使用其他浏览器会话检查重定向规则,或关闭并重新打开浏览器进行检查。
答案 1 :(得分:2)
检查以下hack是否有效 - 在条件中添加“HttpErrorCodeReturnedEquals = 404”。我期待发生以下一系列事件
阅读文档我没有找到一种方法来指定负面条件,如“KeyPrefixNotEquals”以避免递归