Phalcon Micro" handle()"方法解码URI

时间:2017-06-02 09:36:46

标签: php phalcon phalcon-routing

我的Phalcon Micro应用程序接收带有编码斜杠(%2F)的URI部分。

例如,在致电$app->handle()之前:

echo $app->request->getURI(); // -> /resources/res%2F01/all

但看起来$app->handle()方法正在解码我的URI,将我的%2F转换为斜杠。因此,以下路由规则......

$app->get('/resources/{code:[^\/]+}/all', function() { /* ... */ });

...将无法正常工作,因为%2F现在是斜线。在控制器端,%2F不再存在。

echo $code // -> res/01

有没有办法告诉Phalcon不解码URI?

修改

最后,Phalcon没有对URI进行解码,但是基于其路由的$_GET['_url']参数,并且那里已经缺少%2F代码。

1 个答案:

答案 0 :(得分:1)

路由正则表达式不接受您的网址。您不允许在路线定义中使用斜杠 - x[[i]]

如果您想要匹配此网址,路由定义必须如下所示:

[^\/]+
  

有没有办法告诉Phalcon不解码URI?

我认为不是。