在我的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/?'
来告诉路线可能以/
结束,只是忽略了这些东西。
答案 0 :(得分:0)
您想要将所有以尾部斜杠结尾的网址重定向到相同的网址,而不是正确吗?
您必须创建匹配的路线。* / $然后在控制器中删除此" /"。
还有一篇文章给出了symfony doc上的代码: https://symfony.com/doc/current/routing/redirect_trailing_slash.html