Comment définir un objet racine par défaut pour les sous-répertoires sur un site Web hébergé statiquement sur Cloudfront? Plus précisément, j'aimerais www.example.com/subdir/index.html
être servi chaque fois que l'utilisateur le demande www.example.com/subdir
. Notez qu'il s'agit de fournir un site Web statique conservé dans un compartiment S3. De plus, je souhaite utiliser une identité d'accès d'origine pour limiter l'accès au compartiment S3 à Cloudfront uniquement.
Maintenant, je suis conscient que Cloudfront fonctionne différemment des États S3 et Amazon spécifiquement :
Le comportement des objets racine par défaut de CloudFront est différent du comportement des documents d'index Amazon S3. Lorsque vous configurez un compartiment Amazon S3 en tant que site Web et spécifiez le document d'index, Amazon S3 renvoie le document d'index même si un utilisateur demande un sous-répertoire dans le compartiment. (Une copie du document d'index doit apparaître dans chaque sous-répertoire.) Pour plus d'informations sur la configuration des compartiments Amazon S3 en tant que sites Web et sur les documents d'index, consultez le chapitre Hébergement de sites Web sur Amazon S3 dans le Amazon Simple Storage Service Developer Guide.
En tant que tel, même si Cloudfront nous permet de spécifier un objet racine par défaut, cela ne fonctionne que pour www.example.com
et pas pour www.example.com/subdir
. Afin de contourner cette difficulté, nous pouvons changer le nom de domaine d'origine pour qu'il pointe vers le point de terminaison du site Web donné par S3. Cela fonctionne très bien et permet aux objets racine d'être spécifiés de manière uniforme. Malheureusement, cela ne semble pas compatible avec les identités d'accès à l'origine . Plus précisément, les liens ci-dessus indiquent:
Passer en mode édition:
Distributions Web - Cliquez sur l'onglet Origines, cliquez sur l'origine que vous souhaitez modifier, puis sur Modifier. Vous ne pouvez créer une identité d'accès à l'origine que pour les origines dont le type d'origine est Origine S3.
Fondamentalement, pour définir le bon objet racine par défaut, nous utilisons le point de terminaison du site Web S3 et non le compartiment du site Web lui-même. Cela n'est pas compatible avec l'utilisation de l'identité d'accès à l'origine. En tant que tel, mes questions se résument soit à
Est-il possible de spécifier un objet racine par défaut pour tous les sous-répertoires d'un site Web hébergé statiquement sur Cloudfront?
Est-il possible de configurer une identité d'accès à l'origine pour le contenu servi à partir de Cloudfront où l'origine est un point de terminaison de site Web S3 et non un compartiment S3?