特定页面我重建我的网站。新的CloudFront将在S3上进行托管。301重定向与CloudFront的
如何创建针对旧网站存在的一些网址,几个重定向,但不会在新网站上?
example.com/thing?id=blah
例如我会想要重定向到othersite.com/other-path
特定页面我重建我的网站。新的CloudFront将在S3上进行托管。301重定向与CloudFront的
如何创建针对旧网站存在的一些网址,几个重定向,但不会在新网站上?
example.com/thing?id=blah
例如我会想要重定向到othersite.com/other-path
你不能做重定向在CloudFront的,但因为你的出身是S3,你可以做重定向在。
首先,你需要确保为您的S3原点CloudFront的正确配置。您无法使用标准REST API(这是自动完成选项)进行网站重定向。
输入Amazon S3的静态网站托管端点你的水桶。该值显示在Amazon S3控制台的“静态网站托管”下的“属性”页面中。
当你以这种格式指定桶名称,您可以使用Amazon S3重定向和Amazon S3自定义错误文档。
(来源:Using Amazon S3 Origins and Custom Origins for Web Distributions)
接下来,如果您重定向消息从链接确实有他们的查询参数,你需要评估基础上,你需要make sure CloudFront is configured to forward query parameters。我应该注意到,我从来不必在s3中构建重定向,即查询字符串参数的关键字,但根据this SO answer它应该是可能的。如果您的源服务器将返回所有的查询字符串参数不同版本的对象的基础上所有
全部转发,缓存选择此选项。
(来源:Query String Forwarding and Caching)
最后,set up your S3 bucket with Routing Rules用于期望重定向。鉴于您的例子,它会是这个样子:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>thing?id=blah</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>other-path</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
(来源:Syntax for Specifying Routing Rules)
的最后一点要提请你注意将路由的语法规则本身。被放置在您的路由规则中的条件是KeyPrefixEquals
。没有KeyEquals
可用条件。
这意味着,如果您例如有thing?id=blah
和thing?id=blah2
路由规则,顺序将很重要。把blah2
blah
之前,或者你永远匹配blah
。
还有许多其他路由规则可供选择,这将允许您更改协议,重定向到另一个域,而不仅仅是重写路径等。查看documentation on routing rules了解更多信息。
您的示例应该包含您重定向的地址以及您要重定向到的地址。 –