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
我正在将我的应用程序从 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