注释路径页面子结构同时匹配两个路径

时间:2019-02-12 08:57:36

标签: php symfony annotations

我正在尝试为处理我的应用程序中的页面的控制器创建路由注释。页面(阅读:URL)结构可以有多个层次。但是,整个路径只应接受一个变量(段)。我发现了添加多个@route语句的解决方案,但是具有特定标记的页面现在将同时匹配这两个路由,并且我认为这将导致重复的内容SEO问题。有没有解决我的问题的解决方案,而不会导致重复的内容问题?我也宁愿只有一个@route语句,例如/ {slug}

我还尝试了在变量部分中使用正斜杠(/)(symfony称之为占位符)。

/**
  * @Route("/{slug}", name="page", methods={"GET"})
  * @Route("/information/{slug}", name="subpage", methods={"GET"})
  */

页面中的标签将同时匹配这两个路由(重复的内容问题)

1 个答案:

答案 0 :(得分:1)

您需要为“子弹”(see the docs)添加要求。

尝试像这样排除路径“信息”:

/**
  * @Route("/{slug}", name="page", methods={"GET"}, requirements={"slug"="^(?!information)$"})
  * @Route("/information/{slug}", name="subpage", methods={"GET"})
  */