Contributed by
Paweł Smoliński
in #26213.
In web applications is common to use the 301
HTTP status code to make
permanent redirections and the 302
code to make temporary redirections.
However, a problem with these redirection types is that a POST
request is
transformed into a GET
response when doing the redirection for legacy
reasons (redirecting a POST
request didn't work well in old browsers).
In order to solve these issues, the HTTP standard introduced two new status codes:
307
(Temporary Redirect): defined in RFC 7231 and similar to 302
(Found), except that it does not allow changing the request method from
POST
to GET
.308
(Permanent Redirect): defined in RFC 7538 and similar to 301
(Moved Permanently), except that it does not allow changing the request method
from POST
to GET
.In Symfony 4.1 we added support for these new redirection types by adding a new
keepRequestMethod
argument to the redirectAction()
and
urlRedirectAction()
methods of the RedirectController
. You can also use
it as the keepRequestMethod
option in the route definitions:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | route_301:
# ...
defaults:
# ...
permanent: true
route_302:
# ...
defaults:
# ...
permanent: false
route_307:
# ...
defaults:
# ...
permanent: false
keepRequestMethod: true
route_308:
# ...
defaults:
# ...
permanent: true
keepRequestMethod: true
|
What a Symfony developer should know about the framework: News, Jobs, Tweets, Events, Videos,...