【问题标题】:AWS Route 53 / S3 Bucket Redirect All to One URLAWS Route 53 / S3 存储桶全部重定向到一个 URL
【发布时间】:2016-12-22 01:57:12
【问题描述】:

根据我发现的其他一些文章,我正在尝试使用 AWS Route 53 和 S3 执行以下操作:

oldsite.com/* 到 newsite.com/page

我想将所有 oldsite.com 和任何路径重定向到 newsite.com/page 的单个 url。

以下两篇文章都很接近,但它们给了我以下信息:

oldsite.com/* 到 newsite.com/page/*,这可能会导致 newsite.com/404

进一步说明:

我不希望 oldsite.com/foo 重定向到 newsite.com/page/foo

我希望 oldsite.com/foo 重定向到 newsite.com/page

引用的文章给了我 /* 到 /* 而不是 /* 到 /static。

Set up DNS based URL forwarding in Amazon Route53

http://www.holovaty.com/writing/aws-domain-redirection/

【问题讨论】:

    标签: amazon-web-services amazon-s3 url-redirection amazon-route53


    【解决方案1】:

    不要显式配置存储桶以将所有请求重定向到另一个主机。

    为静态网站托管配置存储桶,然后创建与 403 Forbidden 匹配的路由规则(因为 S3 默认拒绝所有内容)并指向您想要的位置。

    <RoutingRules>
     <RoutingRule>
      <Condition>
        <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
      </Condition>
      <Redirect>
       <HostName>target.example.com</HostName>
       <ReplaceKeyWith>static</ReplaceKeyWith>
      </Redirect>
     </RoutingRule>
    </RoutingRules>
    

    所有请求都应该重定向到http://target.example.com/static

    请注意,&lt;ReplaceKeyWith&gt; 省略了前导斜杠。

    【讨论】:

    • 效果很好,谢谢!不过,一个小的更正是您缺少 上的结束元素。需要
    • @ChrisDeal 谢谢。固定的。在 Android 手机键盘上编写 XML……不推荐。 :)
    • @Michael-sqlbot,它工作得很好!!谢谢!但是为什么 403 条件是必要的呢?完全不明白。
    • @Yahya 谢谢。 403 的原因是当您匿名访问页面时,您没有发现权限是否 (a) 对象存在但您没有查看它的权限,或者 (b) 对象不存在不存在。如果“对象存在但未经授权”是403 Forbidden,而“对象不存在”是404 Not Found,这可能会向恶意用户泄露太多信息。如果您授予“所有人”列出存储桶的权限,那么错误确实是 404,您需要为此制定规则,但您希望任何人都列出您的对象的情况似乎很少见。
    猜你喜欢
    • 2018-10-04
    • 2020-02-15
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多