4 votes

Redirection avec CloudFront mais changement d'URL

J'ai un site web statique S3 et je veux rediriger toutes les demandes vers la page d'index. Donc si vous allez sur mysite.com/this_doesnt_exist il devrait rediriger vers mysite.com .

J'ai pu configurer ce comportement à l'aide d'un fichier Réponse d'erreur personnalisée comme celui de l'image ci-dessus, mais le fait est que lorsque je visite mysite.com/this_doesnt_exist Je vois la page d'index mais l'URL ne change pas dans la barre d'adresse. Je veux que ça change.

enter image description here

J'ai également essayé d'utiliser le Règles de redirection sur le seau S3, mais cela ne semble pas fonctionner lorsque CloudFront est configuré. J'ai un autre seau pour l'environnement de test sans CloudFront configuré et cela a fonctionné là avec cette règle :

<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith/>
    </Redirect>
  </RoutingRule>
</RoutingRules>

6voto

Michael - sqlbot Points 21488

Changez votre nom de domaine d'origine de example-bucket.s3.amazonaws.com à example-bucket.s3-website.${region}.amazonaws.com (en remplaçant la région réelle de votre seau) afin que les règles de redirection S3 fonctionnent. Les choix de seau par défaut dans CloudFront sont pour les points d'accès REST de vos seaux, qui ne traiteront pas les règles de redirection.

Changez le <Redirect> dans votre règle de redirection, de manière à ce que le bloc Location généré par la redirection S3 vous envoie vers le bon nom d'hôte (sinon, il aurait tendance à rediriger le navigateur directement vers le point de terminaison de l'hébergement du site web du seau). Ici, www.example.com est le nom d'hôte qui pointe vers votre distribution CloudFront.

<Redirect>
    <Protocol>https</Protocol>
    <HostName>www.example.com</HostName>
    <ReplaceKeyWith/>
</Redirect>

Supprimez les paramètres d'erreur personnalisés.

Créer une invalidation CloudFront pour /* .

Attendez que tout se propage, et refaites le test.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X