silex如何使路由结束“/”可选

时间:2014-04-06 04:04:57

标签: php routes silex

我使用的是Silex 1.1和PHP 5.3,如何在路由中选择结尾“/”?

目前我有两条路线做同样的事情

$app->get('/item/{id}/', function( $id ) use ($app) {
  /** Codes Here **/
});
$app->get('/item/{id}', function( $id ) use ($app) {
  /** Codes Here **/
});

是否可以仅在结尾“/”是可选的情况下指定路线一次?怎么样?

由于

2 个答案:

答案 0 :(得分:8)

如果使用尾部斜杠定义路径,则任何不带斜杠的请求都将返回301重定向到正确的斜杠。因此,定义/item/{id}/,对/item/{id}的任何请求都应返回301重定向到/item/{id}/

答案 1 :(得分:0)

我解决了它替换了我自己的Request实例中的PATH_INFO参数。

$request = Request::createFromGlobals();

$request->server->set('REQUEST_URI', rtrim($request->server->get('REQUEST_URI'), "/"));

$app->run($request);