Mam stronę internetową hostowaną na Amazon S3. Jest to nowa wersja starej witryny hostowanej na WordPress.
Skonfigurowałem niektóre pliki z metadanymi Website Redirect Location
do obsługi starej lokalizacji i przekierowania ich na nowe strony witryny.
Na przykład: miałem http://www.mysite.com/solution
do przekierowania, http://mysite.s3-website-us-east-1.amazonaws.com/product.html
więc utworzyłem pusty plik o nazwie solution
wewnątrz mojego segmentu z poprawnymi metadanymi:
Website Redirect Location
= /product.html
Metadane przekierowania S3 są równoważne z 301 Moved Permanently
tymi, które są świetne dla SEO. Działa to świetnie, gdy uzyskuje się dostęp do adresu URL bezpośrednio z domeny S3.
Skonfigurowałem również dystrybucję CloudFront na podstawie segmentu witryny. A gdy próbuję uzyskać dostęp za pośrednictwem mojej dystrybucji, przekierowanie nie działa, tj .:
http://xxxx123.cloudfront.net/solution
nie przekierowuje, ale zamiast tego pobiera pusty plik.
Więc moje pytanie brzmi: jak utrzymać przekierowanie poprzez dystrybucję CloudFront? Lub jakiś pomysł, jak poradzić sobie z przekierowaniem bez pogorszenia SEO?
Dzięki
źródło
Analiza
Zgodnie z udokumentowanym zachowaniem żądania i odpowiedzi oraz obsługiwanymi kodami stanu HTTP dla niestandardowych źródeł , Amazon CloudFront nie stosuje przekierowań , niestety:
Oczywiście używasz Amazon S3 zamiast niestandardowego źródła, a pokrewna sekcja jest wyraźnie nieobecna w Zachowaniu żądania i odpowiedzi dla Amazon S3 Origins , ale biorąc pod uwagę, że przekierowania Amazon S3 zostały dodane dość niedawno (patrz Amazon S3 - Wsparcie dla strony internetowej Przekierowania ), może nadal tam nie być.
W związku z tym zaryzykuję przypuszczenie, że nie otrzymujesz pustego pliku z kodem stanu HTTP 200 OK , raczej stan HTTP 301 Przeniesiono na stałe bez żadnego ciała - czy faktycznie sprawdziłeś to w przeglądarce, czy w końcu tylko za pomocą narzędzia wiersza poleceń, takiego jak np. cURL lub HTTPie ? Te ostatnie narzędzia zwykle wymagają wyraźnego parametru, aby śledzić przekierowania, więc może to łatwo zostać niezauważone.
Potencjalne rozwiązanie
Jeśli analiza okaże się prawidłowa, konieczne będzie skonfigurowanie przekierowania, aby jawnie celowało w CloudFront, ponownie zobacz Przekierowania :
źródło
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Rozumiem, że przekierowaniem zarządza S3, w tym przypadku plik jest hostowany przez CloudFront i nie obchodzi go nagłówki przekierowań ustawione dla S3 jako S3 to serwer WWW pliku, którego nie mogę zmapować przekierowania inaczej niż z metadanymi.