Silex 如何使路由结尾“/”可选


silex how to make route ending "/" optional

我使用的是 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 **/
});

是否可以只指定一次结尾"/"可选路由? 以及如何?

谢谢

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

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

$request = Request::createFromGlobals();
$request->server->set('REQUEST_URI', rtrim($request->server->get('REQUEST_URI'), "/"));
$app->run($request);