搜尋

首頁  >  問答  >  主體

S3靜態網站託管:將所有路徑重定向至index.html

我正在使用 S3 託管一個將使用 HTML5 PushStates 的 JavaScript 應用程式。問題是,如果使用者為任何 URL 新增書籤,它就不會解析為任何內容。我需要的是能夠接受所有 url 請求並在我的 S3 儲存桶中提供根 index.html,而不僅僅是執行完整重定向。然後我的 JavaScript 應用程式可以解析 URL 並提供正確的頁面。

有沒有辦法告訴 S3 要為所有 URL 請求提供 index.html,而不是進行重定向?這類似於設定 apache 透過提供單一 index.html 來處理所有傳入請求,如本例所示:https://stackoverflow.com/a/10647521/1762614。我真的很想避免僅僅為了處理這些路由而運行網頁伺服器。從 S3 開始做所有事情都非常有吸引力。

P粉127901279P粉127901279478 天前729

全部回覆(1)我來回復

  • P粉231112437

    P粉2311124372023-10-16 19:14:41

    在 CloudFront 的幫助下,無需 URL hack 即可輕鬆解決問題。

    • 建立S3儲存桶,例如:react
    • 使用以下設定建立 CloudFront 分配:
      • 預設根物件:index.html
      • 來源網域:S3 儲存桶域,例如:react.s3.amazonaws.com
    • 前往錯誤頁面標籤,點選建立自訂錯誤回應
      • HTTP 錯誤代碼:403:禁止(404:未找到,如果是 S3 靜態網站)
      • 自訂錯誤回應:是
      • 回應頁面路徑:/index.html
      • HTTP 回應代碼:200:正常
      • #點選建立
    #

    回覆
    0
  • 取消回覆