How to Allow a "/" Character in a Route Parameter
Edit this pageWarning: You are browsing the documentation for Symfony 2.4, which is no longer maintained.
Read the updated version of this page for Symfony 6.0 (the current stable version).
How to Allow a "/" Character in a Route Parameter
Sometimes, you need to compose URLs with parameters that can contain a slash
/
. For example, take the classic /hello/{name}
route. By default,
/hello/Fabien
will match this route but not /hello/Fabien/Kris
. This
is because Symfony uses this character as separator between route parts.
This guide covers how you can modify a route so that /hello/Fabien/Kris
matches the /hello/{name}
route, where {name}
equals Fabien/Kris
.
Configure the Route
By default, the Symfony Routing component requires that the parameters
match the following regex path: [^/]+
. This means that all characters
are allowed except /
.
You must explicitly allow /
to be part of your parameter by specifying
a more permissive regex path.
- YAML
- XML
- PHP
- Annotations
1 2 3 4 5
_hello:
path: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Demo:hello }
requirements:
name: .+
That's it! Now, the {name}
parameter can contain the /
character.