1

我有一个路线配置:

    <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 依赖项。

4

1 回答 1

2
<requirement key="some_strings">1.1|1.2|1.3</requirement>

这些不是字面上匹配的字符串,而是正则表达式。.在正则表达式中表示任意字符。如果您不想要这个特殊含义,那么您需要通过在它前面加上反斜杠来转义点。

<requirement key="some_strings">1\.1|1\.2|1\.3</requirement>
于 2019-11-18T10:16:18.527 回答