J'essayais d'héberger mon site example.com
en utilisant CloudFront avec deux origines S3. S3-main
pour le site et S3-resources
pour les ressources. J'ai donc défini S3-main
comme default(*)
. Et S3-resources
avec le motif de chemin resources/*
.CloudFront obtenu X-Cache: Erreur de cloudfront avec le code d'état 200
Quand je vais https://example.com je chargé avec succès index.html
sous S3-main
Mais quand j'ai essayé de https://example.com/resorces/something.jpg
je suis arrivé à nouveau https://example.com/index.html
avec en-tête comme ci-dessous:
http GET https://example.com/resources/something.jpg
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Length: 1518
Content-Type: text/html
Date: Thu, 17 Aug 2017 03:29:52 GMT
ETag: "9776b731a6c42de14c929c10b4fec28c"
Last-Modified: Thu, 17 Aug 2017 01:56:41 GMT
Server: AmazonS3
Via: 1.1 xxxxxxx.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 3OVCtUAk8mGzKt2OJD5gX9KRLHG3CBSHXf-xxxxxxxx==
X-Cache: Error from cloudfront
Pourquoi ai-je reçu HTTP/1.1 200 OK
et X-Cache: Error from cloudfront
en même temps? Pourquoi ai-je obtenu index.html
plutôt que something.jpg
comme je m'y attendais?
Remarque
je peux obtenir l'image à travers S3-resources.s3.amazonaws.com
http GET https://S3-resources.s3.amazonaws.com/resources/something.jpg
Accept-Ranges: bytes
Content-Length: 176182
Content-Type: image/jpeg
Date: Thu, 17 Aug 2017 04:11:55 GMT
ETag: "xxxxxxx84b05fb6564323c"
Last-Modified: Thu, 17 Aug 2017 02:59:12 GMT
Server: AmazonS3
x-amz-id-2: xxxx/xxxl+ijjM3YTxtQ4LpdHReEOhUvAz7uPFmVwzs8Foe4WOE=
x-amz-request-id: XXXX145CA3
+--------------------+
| NOTE: binary data |
+--------------------+
Nous vous remercions de votre aide. J'ai trouvé la raison est que j'ai mis les pages d'erreur à index.html. Pendant ce temps, miss a configuré 'resources/*' à 'S3-main'. Donc quand 'http GET https: // example.com/resources/something.jpg' il devrait rencontrer une erreur 404 mais a été réécrit à 200 avec un retour index.html. – kehao