2015-09-28 115 views
2

我們使用Amazon S3存儲託管圖片和它的縮略圖。我們上傳不帶縮略圖的新圖像以便按需生成。要做到這一點,我們使用的是這樣的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存儲桶已有...

我怎樣才能阻止「下一步重定向」?

回答

1

在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> 
+0

它幫助!非常感謝!!!! –