Маршрут Zend Framework не работает при передаче URL-адресов в качестве параметров маршрута

Когда я пытаюсь передать URL в маршруте ниже, это выдает ошибку 404. Если я заменим URL любой другой строкой, это сработает.

Это маршрут.

$route = new Zend_Controller_Router_Route(
                'user/logout/:preserve/:ref',
                array(
                        'action'     => 'logout',
                        'controller' => 'user',
                        'module'     => 'root',
                        'preserve' => false,
                        'ref' => ''
                )
        );
        $router->addRoute('logout', $route);

Вот как я генерирую URL в моих представлениях.

<a href="<?php echo $this->url(array('preserve' => 1, 'ref' => $this->url()), 'logout'); ?>">Logout</a>

Это URL, который генерируется помощником просмотра URL.

/user/logout/1/http%3A%2F%2Feop.localhost.com%2F

Я не могу понять, почему это не работает. Может кто-нибудь, пожалуйста, помогите с этим?

Благодарю.

1 ответ

Решение

Мне удалось решить проблему, применив urlencode() функция моего сгенерированного URL.

Надеюсь, это сэкономит кому-то еще время.

Другие вопросы по тегам