Symfony重定向所有以on url结尾的路由

时间:2017-11-23 11:14:21

标签: php symfony routes symfony-3.3

在我的Sym上,fony项目让我们假设我们有以下路线:

$route= new Route('/my-method',array(
    '_controller'=>'AppBundle:MyController:myMethod'
));
$collection->add('my_method_route',$route);

$route= new Route('/my-method2',array(
    '_controller'=>'AppBundle:MyController:myAnotherMethod'
));
$collection->add('my_method2_route',$route);

$route= new Route('/anotherStuff',array(
    '_controller'=>'AppBundle:MyController:anotherStuff'
));
$collection->add('another_stuff',$route);

$route= new Route('/anotherStuff/{param}',array(
    '_controller'=>'AppBundle:MyController:anotherStuffOneParam'
));
$collection->add('another_stuff',$route);

$route= new Route('/anotherStuff/{param}/{another_param}',array(
    '_controller'=>'AppBundle:MyController:anotherStuffTwoParam'
));
$collection->add('another_stuff',$route);

我希望当一个网址以/结尾时,例如。 http//example.com/my-method/重定向到http//example.com/my-method

所以我在考虑是否可以在路由中使用正则表达式作为第一个参数,或者为了执行重定向而配置Symfony的路由系统showhow。

但Symfony可以接受一个正则表达式,或者某种方式是url上的一个可选部分,它可以加入吗?例如,使用'/my-method2/?'来告诉路线可能以/结束,只是忽略了这些东西。

1 个答案:

答案 0 :(得分:0)

您想要将所有以尾部斜杠结尾的网址重定向到相同的网址,而不是正确吗?

您必须创建匹配的路线。* / $然后在控制器中删除此" /"。

还有一篇文章给出了symfony doc上的代码: https://symfony.com/doc/current/routing/redirect_trailing_slash.html