Slim v4 URL 解码 returns 404

Slim v4 URL decode returns 404

我正在将我的应用程序从 slim v2 升级到 v4

我在下面提到了一种路由功能

$group->get('/get-data/{url}', '\V2:get_data'); 

当我传递 url 变量 a

api.app.com/get-data/xxxx%2fyyyyy

路线给出404,

我尝试使用 args 访问函数中的 url 但是

function get_data($request,$response,$args){

  $slug =$args['url'];
  print_r($slug);die;

}

但是连函数都没有进入

任何人都可以帮助我们如何在 slim v4

中使用 %2f 传递动态参数

Slim 使用 fastroute 作为路由器。这只是一个 known limitation with FastRoute.

原因是,%2f在内部转换为/,这也是一个路径段分隔符。您可能还会注意到 %2e 的类似行为,它只是一个 . 点。但是不要问我为什么会出现这种情况。

URL 路径参数应该更“简单”,例如只是一个数值或只是简单的字符串。这就是为什么许多人只使用 62 个字母数字字符(即 A–Z、a–z、0–9)的原因。 *

对于更复杂的查询,典型的 query string 可能更合适。这将不会影响路由路径。

如果您想使用 Symfony 路由器,请查看此示例存储库: https://github.com/l0gicgate/slim4-symfony-router-exp