Tengo un sitio web alojado en Amazon S3. Es la nueva versión de un antiguo sitio web alojado en WordPress.
He configurado algunos archivos con los metadatos Website Redirect Location
para manejar la ubicación anterior y redirigirlos a las nuevas páginas del sitio web.
Por ejemplo: tenía http://www.mysite.com/solution
que quiero redirigir a http://mysite.s3-website-us-east-1.amazonaws.com/product.html
Así que creé un archivo vacío llamado solution
dentro de mi cubo con los metadatos correctos:
Website Redirect Location
= /product.html
Los metadatos de redireccionamiento S3 son equivalentes a uno 301 Moved Permanently
que es excelente para SEO. Esto funciona muy bien cuando se accede a la URL directamente desde el dominio S3.
También he configurado una distribución de CloudFront basada en el depósito del sitio web. Y cuando intento acceder a través de mi distribución, la redirección no funciona, es decir:
http://xxxx123.cloudfront.net/solution
no redirige, sino que descarga el archivo vacío.
¿Entonces mi pregunta es cómo mantener la redirección a través de la distribución de CloudFront? ¿O alguna idea sobre cómo manejar la redirección sin deteriorar el SEO?
Gracias
fuente
Análisis
De acuerdo con el comportamiento documentado de solicitud y respuesta y los códigos de estado HTTP admitidos para orígenes personalizados , Amazon CloudFront no sigue los redireccionamientos , desafortunadamente:
Por supuesto, está utilizando Amazon S3 en lugar de un origen personalizado, y una sección relacionada está notablemente ausente del comportamiento de solicitud y respuesta para los orígenes de Amazon S3 , pero dado que las redirecciones de Amazon S3 solo se han agregado recientemente (consulte Amazon S3 - Soporte para el sitio web Redireccionamientos ), podría faltar todavía allí.
En consecuencia, me atrevo a suponer que no está recibiendo un archivo vacío con el código de estado HTTP 200 OK , sino un estado HTTP 301 movido permanentemente sin ningún cuerpo: ¿ha verificado esto realmente con un navegador o eventualmente solo con una herramienta de línea de comandos como por ejemplo, cURL o HTTPie ? Las últimas herramientas generalmente requieren un parámetro explícito para seguir los redireccionamientos, por lo que esto podría pasar desapercibido fácilmente.
Solucion potencial
Si el análisis resulta correcto, deberá configurar la redirección para apuntar explícitamente a CloudFront en su lugar, nuevamente vea Redirecciones :
fuente
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Entiendo que la redirección es administrada por S3 y en este caso el archivo está alojado por CloudFront y no le importan los encabezados de redirección establecidos para S3 como S3 es el servidor web del archivo No puedo asignar la redirección que no sea con los metadatos.