Saya memiliki situs web yang dihosting di Amazon S3. Ini adalah versi baru dari situs web lama yang dihosting di WordPress.
Saya telah menyiapkan beberapa file dengan metadata Website Redirect Location
untuk menangani lokasi lama dan mengarahkannya ke halaman situs web baru.
Misalnya: Saya http://www.mysite.com/solution
ingin mengarahkan ulang ke http://mysite.s3-website-us-east-1.amazonaws.com/product.html
Jadi saya membuat file kosong bernama solution
di dalam ember saya dengan metadata yang benar:
Website Redirect Location
= /product.html
Metadata redirect S3 setara dengan 301 Moved Permanently
yang bagus untuk SEO. Ini berfungsi baik ketika mengakses URL langsung dari domain S3.
Saya juga telah mengatur distribusi CloudFront berdasarkan pada ember situs web. Dan ketika saya mencoba mengakses melalui distribusi saya, pengalihan tidak berfungsi, yaitu:
http://xxxx123.cloudfront.net/solution
tidak mengarahkan tetapi mengunduh file kosong saja.
Jadi pertanyaan saya adalah bagaimana menjaga pengalihan melalui distribusi CloudFront? Atau ada ide tentang bagaimana menangani pengalihan tanpa memburuk SEO?
Terima kasih
sumber
Analisis
Menurut Perilaku Permintaan dan Respons yang terdokumentasi , dan Kode Status HTTP yang Didukung untuk Asal Mula Kustom , Amazon CloudFront tidak mengikuti Pengalihan , sayangnya:
Tentu saja, Anda menggunakan Amazon S3 daripada asal kustom, dan bagian terkait terutama tidak ada dari Perilaku Permintaan dan Respons untuk Asal Amazon S3 , tetapi pengalihan Amazon S3 hanya ditambahkan baru-baru ini (lihat Amazon S3 - Dukungan untuk Situs Web Pengalihan ), mungkin saja masih ada yang hilang.
Karena itu saya berani menebak bahwa Anda tidak menerima file kosong dengan kode status HTTP 200 OK , melainkan status HTTP 301 Pindah secara permanen tanpa badan sama sekali - apakah Anda benar-benar memeriksa ini dengan browser atau akhirnya hanya dengan alat baris perintah seperti mis. CURL atau HTTPie ? Alat yang terakhir biasanya membutuhkan parameter eksplisit untuk mengikuti arahan ulang, jadi ini mungkin mudah diketahui.
Solusi Potensial
Jika analisis ternyata benar, Anda harus mengonfigurasi pengalihan untuk secara eksplisit menargetkan CloudFront, sebagai gantinya, lihat Pengalihan :
sumber
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Pemahaman saya adalah bahwa pengalihan dikelola oleh S3 dan dalam hal ini file di-host oleh CloudFront dan tidak peduli tentang redirection header yang ditetapkan untuk S3 As S3 adalah server web file saya tidak bisa memetakan pengalihan selain dengan metadata.