Pengehosan tapak web statik S3: ubah hala semua laluan ke index.html
P粉127901279
P粉127901279 2023-10-15 23:02:52
0
1
680

Saya menggunakan S3 untuk mengehoskan aplikasi JavaScript yang akan menggunakan HTML5 PushStates. Masalahnya, jika pengguna menanda halaman mana-mana URL, ia tidak menyelesaikan apa-apa. Apa yang saya perlukan ialah dapat menerima semua permintaan url dan menyampaikan index.html akar dalam baldi S3 saya, dan bukannya melakukan ubah hala penuh. Aplikasi JavaScript saya kemudiannya boleh menghuraikan URL dan menyampaikan halaman yang betul.

Adakah terdapat cara untuk memberitahu S3 supaya menyediakan index.html untuk semua permintaan URL dan bukannya mengubah hala? Ini serupa dengan menyediakan apache untuk mengendalikan semua permintaan masuk dengan menyediakan satu index.html, seperti yang ditunjukkan dalam contoh ini: https://stackoverflow.com/a/10647521/1762614. Saya benar-benar ingin mengelak daripada menjalankan pelayan web hanya untuk mengendalikan laluan ini. Ia sangat menarik untuk melakukan segala-galanya dari S3.

P粉127901279
P粉127901279

membalas semua(1)
P粉231112437

Dengan bantuan CloudFront, masalah ini boleh diselesaikan dengan mudah tanpa penggodaman URL.

  • Buat baldi S3, contohnya: bertindak balas
  • Buat pengedaran CloudFront dengan tetapan berikut:
    • Objek akar lalai: index.html
    • Nama domain sumber: Domain baldi S3, contohnya: react.s3.amazonaws.com
  • Pergi ke tab Halaman Ralat dan klik Buat Respons Ralat Tersuai:
    • Kod Ralat HTTP: 403: Dilarang (404: Tidak Ditemui, jika laman web statik S3)
    • Respons ralat tersuai: Ya
    • Laluan halaman respons:/index.html
    • Kod respons HTTP: 200: OK
    • Klik Buat
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan