Разрешить параметр, содержащий косые черты в Zend_Controller_Router_Route_Regex - PullRequest
2 голосов
/ 17 декабря 2009

Это мой код:

$route = new Zend_Controller_Router_Route_Regex('download/([^/]+)(/([^/]+))?/(\d+)/(\d+)',
                                            array('controller' => 'download',
                                                  'action'     => 'load'),
                                            array(1 => 'name', 3 => 'or_name',
                                                  4 => 'p_id', 5 => 'c_id'));
$router->addRoute('download', $route);

Первый параметр должен содержать косую черту, но в форме в кодировке урлен. Но, к сожалению, он не работает с моим текущим кодом, вместо этого выдает ошибку 404.

Итак, возможно ли запретить кодирование параметров маршрута?

1 Ответ

1 голос
/ 17 декабря 2009

В пределах Zend_Controller_Router_Route_Regex::match он вызывает urlencode на пути сразу:

$path = trim(urldecode($path), '/');


Чтобы победить это, попробуйте urlencoding ваш name параметр дважды:

$url = 'download/'.urlencode(urlencode('hey/there'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...