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.11.21.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>