我在我的路由中成功创建了重定向,如果页面为 1,则重定向到没有 URL 参数页面的主控制器页面。(对重复内容的SEO预防)。所以我有这个路由规则:
default_blog:
path: /
defaults: { _controller: AcmeBlogBundle:Default:index, page: 1}
default_blog_page_first:
path: /page/1
defaults:
_controller: FrameworkBundle:Redirect:redirect
route: default_blog
permanent: true
default_blog_page:
path: /page/{page}
defaults: { _controller: AcmeBlogBundle:Default:index}
requirements:
page: 'd+
它在我的分页中有效。如果我单击我的第一页 (/page/1),我将被重定向到/,但它是否有可能已经在生成路径中转换?只是,如果default_blog_page
有参数page = 1
它会自动转换为default_blog
?
所以,我的分页将如下所示:
URL => Page
-------------------
/ => 1 , /page/2 => 2
在任何树枝模板中:
path('default_blog_page', {'page': 1})
如果检测到页面 = 1,它将自动更改为:
path('default_blog')
可能吗?
好的,
我想我明白你想做什么,是的,这是可能的!
这是诀窍。通过以下代码编辑default_blog_page路由:
default_blog_page:
path: /{type}/{page}
defaults: { _controller: AcmeBlogBundle:Default:index, type: "page", page: 1}
requirements:
page: 'd+
type: page
使用此路由,如果您设置页面参数,它将自动添加默认类型值"page",但如果它是默认值,则不会。尽管您可以删除重定向路由,因为此路由处理所有情况。
希望这对:)有所帮助