我正在尝试为处理我的应用程序中的页面的控制器创建路由注释。页面(阅读:URL)结构可以有多个层次。但是,整个路径只应接受一个变量(段)。我发现了添加多个@route语句的解决方案,但是具有特定标记的页面现在将同时匹配这两个路由,并且我认为这将导致重复的内容SEO问题。有没有解决我的问题的解决方案,而不会导致重复的内容问题?我也宁愿只有一个@route语句,例如/ {slug}
我还尝试了在变量部分中使用正斜杠(/)(symfony称之为占位符)。
/**
* @Route("/{slug}", name="page", methods={"GET"})
* @Route("/information/{slug}", name="subpage", methods={"GET"})
*/
页面中的标签将同时匹配这两个路由(重复的内容问题)
答案 0 :(得分:1)
您需要为“子弹”(see the docs)添加要求。
尝试像这样排除路径“信息”:
/**
* @Route("/{slug}", name="page", methods={"GET"}, requirements={"slug"="^(?!information)$"})
* @Route("/information/{slug}", name="subpage", methods={"GET"})
*/