J'ai un site Web hébergé sur Amazon S3. Il s'agit de la nouvelle version d'un ancien site Web hébergé sur WordPress.
J'ai configuré certains fichiers avec les métadonnées Website Redirect Location
pour gérer l'ancien emplacement et les rediriger vers les nouvelles pages du site Web.
Par exemple: je devais http://www.mysite.com/solution
rediriger vers http://mysite.s3-website-us-east-1.amazonaws.com/product.html
Donc j'ai créé un fichier vide nommé à l' solution
intérieur de mon compartiment avec les métadonnées correctes:
Website Redirect Location
= /product.html
Les métadonnées de redirection S3 sont équivalentes à celles 301 Moved Permanently
qui sont idéales pour le référencement. Cela fonctionne très bien lors de l'accès à l'URL directement à partir du domaine S3.
J'ai également mis en place une distribution CloudFront basée sur le compartiment du site Web. Et quand j'essaye d'accéder via ma distribution, la redirection ne fonctionne pas, c'est à dire:
http://xxxx123.cloudfront.net/solution
ne redirige pas mais télécharge le fichier vide à la place.
Ma question est donc de savoir comment conserver la redirection via la distribution CloudFront? Ou une idée sur la façon de gérer la redirection sans détériorer le référencement?
Merci
la source
Une analyse
Selon le comportement documenté des demandes et des réponses et les codes d'état HTTP pris en charge pour les origines personnalisées , Amazon CloudFront ne suit malheureusement pas les redirections :
Bien sûr, vous utilisez Amazon S3 plutôt qu'une origine personnalisée, et une section connexe est notamment absente du comportement de demande et de réponse pour Amazon S3 Origins , mais étant donné que les redirections Amazon S3 n'ont été ajoutées que récemment (voir Amazon S3 - Support for Website Redirections ), il se peut qu'il manque encore là.
En conséquence, je suppose que vous ne recevez pas un fichier vide avec le code d'état HTTP 200 OK , plutôt un état HTTP 301 Déplacé de manière permanente sans aucun corps - avez-vous réellement vérifié cela avec un navigateur ou éventuellement uniquement avec un outil de ligne de commande comme par exemple cURL ou HTTPie ? Ces derniers outils nécessitent généralement un paramètre explicite pour suivre les redirections, ce qui peut facilement passer inaperçu.
Solution potentielle
Si l'analyse s'avère correcte, vous devez configurer la redirection pour cibler explicitement CloudFront à la place, voir à nouveau les redirections :
la source
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Ma compréhension est que la redirection est gérée par S3 et dans ce cas, le fichier est hébergé par CloudFront et il ne se soucie pas des en-têtes de redirection définis pour S3 comme S3 est le serveur Web du fichier, je ne peux pas mapper la redirection autrement qu'avec les métadonnées.