Hébergement de site Web statique S3 : redirigez tous les chemins vers index.html
P粉127901279
P粉127901279 2023-10-15 23:02:52
0
1
679

J'utilise S3 pour héberger une application JavaScript qui utilisera HTML5 PushStates. Le problème est que si l’utilisateur ajoute une URL à ses favoris, cela ne résout rien. Ce dont j'ai besoin, c'est de pouvoir accepter toutes les demandes d'URL et de servir le fichier racine index.html dans mon compartiment S3, plutôt que de simplement effectuer une redirection complète. Mon application JavaScript peut alors analyser l'URL et diffuser la bonne page.

Existe-t-il un moyen de dire à S3 de servir index.html pour toutes les requêtes d'URL au lieu de rediriger ? Cela revient à configurer Apache pour gérer toutes les requêtes entrantes en servant un seul index.html, comme le montre cet exemple : https://stackoverflow.com/a/10647521/1762614. J'aimerais vraiment éviter d'exécuter un serveur Web uniquement pour gérer ces itinéraires. C'est très tentant de tout faire depuis S3.

P粉127901279
P粉127901279

répondre à tous(1)
P粉231112437

Avec l'aide de CloudFront, ce problème peut être facilement résolu sans piratage d'URL.

  • Créez un bucket S3, par exemple : réagissez
  • Créez une distribution CloudFront avec les paramètres suivants :
    • Objet racine par défaut : index.html
    • Nom de domaine source : domaine du bucket S3, par exemple : react.s3.amazonaws.com
  • Accédez à l'onglet Page d'erreur et cliquez sur Créer une réponse d'erreur personnalisée :
    • Code d'erreur HTTP : 403 : Interdit (404 : Introuvable, si site Web statique S3)
    • Réponse d'erreur personnalisée : Oui
    • Chemin de la page de réponse :/index.html
    • Code de réponse HTTP : 200 : OK
    • Cliquez sur Créer
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal