Symfony 路由允许在配置点的地方使用逗号
Symfony routing allows commas where dots are configurated
我有一个路由配置:
<route id="some_route" path="/special/path/{some_strings}">
<default key="_controller">SpecialControllerBundle:Default:index</default>
<requirement key="some_strings">1.1|1.2|1.3</requirement>
</route>
规范仅允许 1.1
、1.2
、1.3
字符串作为 some_strings 参数有效。
所以我调用 myhost/special/path/1.1
- 它工作得很好。
但出于某种原因我可以调用 myhost/special/path/1,1
(注意逗号)- 它以某种方式满足要求并将数据传递给控制器。
如果我调用一些非法要求 myhost/special/path/2.3
它会给出 404。
使用了 Symfony 3.4 依赖项。
<requirement key="some_strings">1.1|1.2|1.3</requirement>
这些不是按字面匹配的字符串,而是作为正则表达式匹配的。 .
在正则表达式中表示任意字符。如果你不想要这个特殊的含义,那么你需要转义点,在它前面加一个反斜杠。
<requirement key="some_strings">1\.1|1\.2|1\.3</requirement>
我有一个路由配置:
<route id="some_route" path="/special/path/{some_strings}">
<default key="_controller">SpecialControllerBundle:Default:index</default>
<requirement key="some_strings">1.1|1.2|1.3</requirement>
</route>
规范仅允许 1.1
、1.2
、1.3
字符串作为 some_strings 参数有效。
所以我调用 myhost/special/path/1.1
- 它工作得很好。
但出于某种原因我可以调用 myhost/special/path/1,1
(注意逗号)- 它以某种方式满足要求并将数据传递给控制器。
如果我调用一些非法要求 myhost/special/path/2.3
它会给出 404。
使用了 Symfony 3.4 依赖项。
<requirement key="some_strings">1.1|1.2|1.3</requirement>
这些不是按字面匹配的字符串,而是作为正则表达式匹配的。 .
在正则表达式中表示任意字符。如果你不想要这个特殊的含义,那么你需要转义点,在它前面加一个反斜杠。
<requirement key="some_strings">1\.1|1\.2|1\.3</requirement>