从 Symfony2 中的 routing.yml 将一条路由重定向(301)到另一条路由

Posted

技术标签:

【中文标题】从 Symfony2 中的 routing.yml 将一条路由重定向(301)到另一条路由【英文标题】:Redirect (301) one route to another from routing.yml in Symfony2 【发布时间】:2012-01-21 16:15:02 【问题描述】:

我知道这可能是微不足道的,但我在网络上或 Symfony2 参考资料中找不到任何东西。

如何从 routing.yml 将一条路由重定向到另一条路由(状态码为 301)?

我正在寻找这样的东西:

SomeRoute:
    pattern: /someroute
    defaults:  _controller: SomeBundle:Controller:action 

AnotherRoute:
    pattern: /anotherroute
    defaults:  _redirect: route: SomeRoute, status: 301 

我可以创建一个控制器,但这似乎有点过头了,因为我没有任何参数(即使这样,如果要按原样传递它们也将是过头了)。

【问题讨论】:

【参考方案1】:
SomeRoute:
    pattern: /someroute
    defaults:
        _controller: SomeBundle:Controller:action

AnotherRoute:
    pattern: /anotherroute
    defaults:
        _controller: FrameworkBundle:Redirect:redirect
        route: SomeRoute
        permanent: true # this is for 301
        page: 5 # you can pass additional attributes

【讨论】:

路由有参数怎么办? @crudolf,添加了使用属性的示例。 官方文档:symfony.com/doc/master/cookbook/routing/redirect_in_config.html 如何将参数从原始模式传递到重定向路由?例如,将pattern: /user/username/posts 重定向到pattern: /user/username?

以上是关于从 Symfony2 中的 routing.yml 将一条路由重定向(301)到另一条路由的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 自定义路由加载器:导入错误

symfony2显示调试工具栏

Symfony2 Route 仅在整数时获取参数

找不到 Symfony2 突然登录路径

Symfony2/FOSUserBundle - 多个包的路由问题

在 routing_dev.yml 中检测到循环引用