特定頁面我重建我的網站。新的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瞭解更多信息。
您的示例應該包含您重定向的地址以及您要重定向到的地址。 –