検索

ホームページ  >  に質問  >  本文

S3 静的 Web サイトホスティング: すべてのパスをindex.html にリダイレクトします。

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

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

P粉127901279P粉127901279408日前688

全員に返信(1)返信します

  • P粉231112437

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

    CloudFront の助けを借りて、この問題は URL ハッキングなしで簡単に解決できます。

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