带文件夹的Symfony2路由(包含多个正向斜杠)

带文件夹的Symfony2路由(包含多个正向斜杠),symfony,Symfony,我希望在Symfony2中设置一些路由,但我很难为文件夹设置动态路由 我正在尝试设置接受以下内容的路由:/department/sub-department/sub-sub-department/product-url.html 从这条路线所有我需要的是产品的网址,其余的是更多的搜索引擎优化。我的问题是,一条路线的URL中可能有许多部门级别,因此我需要忽略产品URL之前的所有内容 看起来“/”是这里的问题所在,所以有没有办法避开斜杠 如果我不使用路线中的任何部门,我可以使用: product:

我希望在Symfony2中设置一些路由,但我很难为文件夹设置动态路由

我正在尝试设置接受以下内容的路由:/department/sub-department/sub-sub-department/product-url.html

从这条路线所有我需要的是产品的网址,其余的是更多的搜索引擎优化。我的问题是,一条路线的URL中可能有许多部门级别,因此我需要忽略产品URL之前的所有内容

看起来“/”是这里的问题所在,所以有没有办法避开斜杠

如果我不使用路线中的任何部门,我可以使用:

product:
    pattern:  /{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
所以,我基本上需要这样的东西:

product:
    pattern:  /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
其中,{department}可以是一个或多个具有正向斜杠的部门


这有可能吗?

在以下网站上有一篇关于它的好文章:

您必须通过指定更宽松的正则表达式模式来明确允许/成为参数的一部分

在您的情况下,路线定义必须是

product:
    pattern: /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
    requirements:
        department: ".+"

模式被解释为正则表达式,因此您可以像编写正则表达式一样编写它。
product:
    pattern: /{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest, department: ~ }

product_department:
    pattern: /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
    requirements:
        department: '[\w\d\/\-]+'