Nuevo en Symfony 4.1: redirecciones 307 and 308
En las aplicaciones web es habitual usar el código de estado HTTP 301
para hacer
redirecciones permanentes y el código 302
para las redirecciones temporales.
No obstante, un problema de estas redirecciones es que cuando se hacen sobre una
petición de tipo POST
, esta se transforma en GET
por razones históricas
(redireccionar peticiones POST
no funcionaba bien en los navegadores antiguos).
Para resolver este problema, el estándar HTTP introdujo dos nuevos códigos de estado:
307
(Temporary Redirect): definido en el RFC 7231 y similar to302
(Found), salvo que no permite cambiar el método de la petición dePOST
aGET
.308
(Permanent Redirect): definido en RFC 7538 y similar to301
(Moved Permanently), salvo que no permite cambiar el método de la petición dePOST
aGET
.
En Symfony 4.1 hemos añadido soporte para estos nuevos tipos de redirecciones
mediante el nuevo argumento keepRequestMethod
de los métodos redirectAction()
y urlRedirectAction()
de la clase RedirectController
. También puedes hacer
uso de esta opción mediante el parámetro keepRequestMethod
de la definición
de tus rutas:
ruta_que_resulta_en_el_codigo_301: # ... defaults: # ... permanent: true ruta_que_resulta_en_el_codigo_302: # ... defaults: # ... permanent: false ruta_que_resulta_en_el_codigo_307: # ... defaults: # ... permanent: false keepRequestMethod: true ruta_que_resulta_en_el_codigo_308: # ... defaults: # ... permanent: true keepRequestMethod: true
Esta funcionalidad fue contribuida por Paweł Smoliński en el pull request #26213.
Fuente: New in Symfony 4.1: 307 and 308 redirections
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.