Twig - 获取规范标记的URL

use*_*082 11 canonical-link symfony twig

我想在我的应用程序中创建一个动态的rel ="canonical"标记,它会引入当前的URL但是要确保删除任何查询参数.例如,http://www.example.com/test/? page = 2应该具有规范为http://www.example.com/test/,因此{{ app.request.uri }}无法正常工作?page=2.

有没有人知道如何在没有查询参数的情况下拉入页面的绝对路径?

jam*_*mek 15

这会工作,

{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
Run Code Online (Sandbox Code Playgroud)

  • +1还没有尝试过,但这似乎是一个非常巧妙的解决方案:) (2认同)
  • @SteveBuzonas,不,它只是根据当前路由名称及其参数生成 url。如果您有其他查询字符串,您需要自己添加 (2认同)
  • 在 404 页面中,如果您扩展使用此代码的模板,请确保将其放入 if 块中,否则 404 页面将变成 500 页面,因为路由不存在。 (2认同)

Jov*_*vic 6

我只是试图转储,baseUrl并可以确认它不起作用.

但是,这有效:

{{ app.request.getSchemeAndHttpHost ~ app.request.baseUrl ~ app.request.pathInfo }}
Run Code Online (Sandbox Code Playgroud)

我知道,这不是很漂亮,但它确实有效:)

  • 这就是我正在寻找的,上述解决方案不包括生成网址的参数。 (2认同)