S3 静的ウェブサイトホスティング すべてのパスを Index.html にルーティングする 質問する

S3 静的ウェブサイトホスティング すべてのパスを Index.html にルーティングする 質問する

私は HTML5 pushStates を使用する JavaScript アプリをホストするために S3 を使用しています。問題は、ユーザーがいずれかの URL をブックマークすると、何も解決されないことです。必要なのは、完全なリダイレクトを行うのではなく、すべての URL リクエストを受け取り、S3 バケット内のルート index.html を提供する機能です。そうすれば、JavaScript アプリケーションは URL を解析し、適切なページを提供できます。

リダイレクトを行う代わりに、すべての URL リクエストに対して index.html を提供するように S3 に指示する方法はありますか? これは、次の例のように、単一の index.html を提供することですべての受信リクエストを処理するように Apache を設定することに似ています。https://stackoverflow.com/a/10647521/1762614これらのルートを処理するためだけに Web サーバーを実行するのは避けたいです。すべてを S3 から実行できるのは非常に魅力的です。

ベストアンサー1

CloudFront の助けを借りれば、URL ハックなしでも簡単に解決できます。

  • S3バケットを作成します。例: react
  • 次の設定で CloudFront ディストリビューションを作成します。
    • デフォルトのルートオブジェクト: index.html
    • オリジンドメイン名: S3 バケットドメイン、例: react.s3.amazonaws.com
  • [エラー ページ]タブに移動し、[カスタム エラー応答の作成]をクリックします。
    • HTTP エラー コード: 403: 禁止 (S3 静的 Web サイトの場合は 404: 見つかりません)
    • エラー応答をカスタマイズする: はい
    • 応答ページパス: /index.html
    • HTTP 応答コード: 200: OK
    • 作成をクリック

おすすめ記事