Symfony2路由 - 排除.html

时间:2014-02-07 18:07:05

标签: symfony routing

我想在Symfony2中使用点停止路由。例如:

/ blog / development(这很好)
/blog/developm.ent(需要404)
/blog/development.html(需要404)

如何使用yml实现这一目标?这就是我对上面第一个例子的看法:

s_nerds_blog_category_page:
    pattern: /blog/{category}
    defaults: { _controller: SNerdsBlogBundle:Default:category }

1 个答案:

答案 0 :(得分:4)

symfony2中的路线要求:

您可以添加请求的网址需要匹配的正则表达式 requirements ,以便将其解析为特定路线:

# This example allows only digits (\d+) for {category} 

blog:
    path:      /blog/{category}
    defaults:  { _controller: AcmeBlogBundle:Blog:index, category: 1 }
    requirements:
        category:  \d+

排除包含点的路线:

# matches only routes not containing a dot

blog:
    path:      /blog/{category}
    defaults:  { _controller: AcmeBlogBundle:Blog:index, category: 1 }
    requirements:
        category:  ^[^\.]*$

<强>解释

  1. ^ - 字符串的开头
  2. [^\.]* - 除.以外的任何字符,任意数量的重复
  3. $ - 字符串结尾