我有一個運行在S3上的JavaScript(Backbone)前端,我想要將兩個深層鏈接重定向到同一個索引文件。你通常會在Apache中使用mod_rewrite來做到這一點,但在S3中沒有辦法做到這一點。S3上的骨幹前端的深層鏈接
我已經嘗試設置默認錯誤文檔是一樣的索引文件,並 這部作品表面上,但如果你檢查實際響應狀態的頭部,你會看到頁面回來爲404。這顯然不好。
還有另一種解決方案,它的醜陋,但不是錯誤文檔黑客更好:
事實證明,你可以創建的index.html,然後將其命名爲簡單地等同於子目錄複印件(零下後綴斜槓),例如,如果我克隆index.html並將其命名爲'about',並確保Content-Type設置爲text/html(在元數據標籤中),所有/ about的請求將返回新的'about'是index.html的副本。
顯然,這是解決次優的,只有使用預定義的深層鏈接的目標工作,但如果克隆index.html的步驟是針對前端構建過程的一部分的麻煩可以被減輕。使用Backbone-Boilerplate我可以編寫一個咕嚕任務來做到這一點。
除了這2個哈克解決方法我沒有看到比訴諸hashbangs這樣做其他的方式..
任何建議,將不勝感激。
UPDATE:
S3現在(爲一個,而實際上)支持Index Documents這解決了這個問題。
此外,如果你使用的路線53爲你的DNS管理你可以建立一個alias record指向您的S3存儲,所以你不需要一個子+ CNAME了:)
嗨,索引文檔如何解決您的問題?如果我訪問某個URL並且該文件不存在,我應該使用index.html來提供服務。可以創建一個重定向條件,其中說404時重定向,但在重定向規則中,我們不能提及IndexDocument。 – w2lame 2014-08-12 09:34:54