ZF-7628: Zend_Controller_Router_Route_Chain does not urldecode the path info

Description

In Zend/Controller/Router/Route/Chain.php on line 75, in the match() method:

$path = trim($request->getPathInfo(), '/');

Then the match method proceeds to call match on all the routes in the chain, with the argument partial set to true.

When partial is set to true, the sub-routes do not urldecode the path info. Since it is never done in the Chain route itself, it is not done at all.

Comments

I have fixed the issue by modifying Zend/Controller/Router/Route/Chain.php on line 75 from:

$path = trim($request->getPathInfo(), '/');

to:

$path = trim( urldecode( $request->getPathInfo() ), '/');

After modifying this line and testing my application, I do not seem to have introduced any new bugs.

Assigning to Ben.

Why this bug not fixed? It's critical for cyrillic charsets

Fixed with the issue ZF-3527.