【问题标题】:Annotation route page substructure matches both routes注释路由页面子结构匹配两个路由
【发布时间】:2019-02-12 08:57:36
【问题描述】:

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

我还尝试在变量部分允许使用正斜杠 (/)(symfony 将其称为占位符)。

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

页面中的 slug 将匹配两个路由(重复内容问题)

【问题讨论】:

    标签: php symfony annotations


    【解决方案1】:

    你需要添加对“slug”的要求,see the docs

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

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

    【讨论】:

    • 接受的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2018-06-17
    • 2020-09-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多