[英]Amazon S3 rewrite rules redirection issue
我們使用 Amazon S3 存儲來托管圖像及其縮略圖。 我們上傳沒有縮略圖的新圖像以按需生成。 為此,我們使用 S3 重寫規則,如下所示:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName>mysite.com</HostName>
<ReplaceKeyPrefixWith>/path/to/thumbnail/generator.php?image=</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
如果縮略圖尚不存在,它將被重定向到我們的腳本,該腳本生成一個新的縮略圖,上傳到 S3 並在響應中發送它。 該腳本運行良好,可以滿足我們的需求。 問題是,如果 S3 存儲桶中已有縮略圖,則對新生成的縮略圖的所有下一次調用都會一次又一次地重定向到腳本事件...
如何停止“下一次重定向”?
S3 中路由規則返回的默認 http 狀態顯示為301 Moved Permanently
。 當看到此代碼時,瀏覽器應該為后續請求使用新位置……因此,鑒於此,您所看到的行為並非完全出乎意料。
“臨時”重定向,例如您正在執行的重定向,應該返回302 Found
(從技術上講, 302
是唯一重要的部分,某些實現將使用302 Moved Temporarily
或其他消息)。 通過這樣的重定向,瀏覽器應該將未來的請求發送到原始位置。
使用<HttpRedirectCode>
覆蓋默認值應該是獲得預期行為所必需的。
<Redirect>
<HttpRedirectCode>302</HttpRedirectCode>
<HostName>example.com</HostName>
<ReplaceKeyPrefixWith>/path/to/thumbnail/generator.php?image=</ReplaceKeyPrefixWith>
</Redirect>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.