Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

272
Visualizações
¿Cómo conservo los parámetros de consulta en una ruta sin una barra diagonal final en un sitio estático alojado en S3 y Cloudfront?

Tengo un sitio generado estáticamente que cargué en S3 y emergí a través de una distribución de Cloudfront: tiene un archivo raíz index.html y varias subpáginas generadas estáticamente (por ejemplo /donate/index.html ). Configuré el depósito para que actúe como un host estático con index.html como documento de índice. Y puedo visitar estas páginas visitando el prefijo S3 directamente, por ejemplo, /donate/ muestra correctamente el html en /donate/index.html .

Aquí está el problema: cuando me vinculo a /donate?some=query&param=here S3 automáticamente redirige 302 estas páginas sin una barra inclinada final a la página con la barra inclinada final, eliminando los parámetros de consulta que usa mi javascript del lado del cliente para rastrear ligeramente el estado .

Por ejemplo /donate?some=query&param=here 302s a /donate/ y pierde ese contexto, lo que dificulta que la gente construya URL porque deben recordar incluir la barra inclinada final (HTTP 302 también es una mala respuesta http si desea que la web rastreadores para recordar la nueva ruta).

Esto es lo que no funcionó:

  • Configuración de Cloudfront para almacenar rutas en caché usando parámetros de consulta en la política de almacenamiento en caché de la distribución (Cloudfront > Distribución > Comportamiento > Editar > Política de almacenamiento en caché)
  • Configuración de Cloudfront para reenviar parámetros de consulta en la política de solicitud de origen de la distribución (Cloudfront > Distribución > Comportamiento > Editar > Política de solicitud de origen)
  • Configuración del depósito de S3 para redirigir las rutas mediante las reglas de redirección de S3 (S3 > Depósito > Propiedades > Alojamiento web estático > Reglas de redirección)
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto es lo que finalmente lo descifró: crear una función Cloudfront de solicitud de espectador para verificar manualmente si la ruta no contiene una extensión de archivo ni una barra inclinada final y agregar una en esos casos.

 function handler (event) { var request = event.request; var uri = request.uri; if( !uri.includes('.') && !uri.endsWith('/') ) { request.uri = uri + '/' } return request; };

Cree esta función en Cloudfront (Cloudfront > Funciones > Crear función) y luego adjúntela al comportamiento de su distribución (Cloudfront > Distribución > Comportamiento > Editar > Solicitud del espectador > Funciones de Cloudfront).

Asegúrese de invalidar el sitio después de que la distribución haya terminado de inicializarse con la nueva configuración y pruebe la nueva ruta a través de CURL; debería ver el siguiente cambio de comportamiento:

 # BEFORE: curl -v --location http://example.com/donate?please=keep > /dev/null > GET /donate?please=keep > RESP 302 > GET /donate/ > RESP 200 # AFTER curl -v --location http://example.com/donate?please=keep > /dev/null > GET /donate?please=keep > RESP 200

¿Hay otra manera? ¿Me arrepentiré de haber pagado por cada invocación de función de Cloudfront? ¿Hay alguna manera de hacer que esto suceda con cambios de política puramente de Cloudfront o S3?

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda