2014-02-09 14 views
3

如何讓AWS S3爲所有頁面提供index.html而不僅僅是/?如果我在任何子路由中輸入應用程序,它現在會返回404。我正在使用history的位置。帶有Ember應用程序的AWS S3 404使用歷史記錄位置

我試圖用這個規則都重定向:

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
    <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals > 
    </Condition> 
    <Redirect> 
     <HostName>yourdomainname.com</HostName> 
    </Redirect> 
    </RoutingRule> 
</RoutingRules> 

這結束在一個重定向循環。

我試着將錯誤文檔設置爲index.html。這是無法加載靜態資產,然後因爲它試圖找到他們在請求的網址,而不是實際的根網址。

+0

我認爲這是不可能的:/ – mehulkar

回答

1

我也偶然發現了這個問題,正如你提到的那樣,這是不可能的,但是我有一個解決這個問題的方法。

取而代之的是使用'歷史'位置命名空間我用'哈希'位置命名空間和我重定向請求我散列路線。

我重定向規則

<RoutingRules> 
    <RoutingRule> 
     <Condition> 
      <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals> 
     </Condition> 
     <Redirect> 
      <HostName>bucketname-website-us-east-1.amazonaws.com</HostName> 
      <ReplaceKeyPrefixWith>#/</ReplaceKeyPrefixWith> 
     </Redirect> 
    </RoutingRule> 
</RoutingRules> 

這樣,如果用戶在瀏覽器中手動輸入網址,然後用戶被引導到正確的頁面。

+1

呀,那是,如果你不想使用'history'位置的解決方案。 – mehulkar

+0

如果你得到一個404,HttpErrorCodeReturnedEquals應該從403更改爲404. – shennyg

+1

@shennyg我得到了403禁止的錯誤。 –

-1

只要改變錯誤位置的index.html,沒有重定向規則需要

+0

問題來自很久以前,我現在沒有能力測試這個,但我_believe_我試過這個,但它不起作用。 – mehulkar

相關問題