Как я могу перенаправить на внешний URL в Zend - PullRequest
1 голос
/ 20 декабря 2010

Я пытаюсь создать ссылки, такие как / redirector / http://www.google.co.uk, чтобы он выполнял пользовательское действие перенаправления, которое записывает использование ссылки.Я настроил маршрутизатор с кодом ниже

routes.redirector.route = /redirector/:url
routes.redirector.defaults.module = default
routes.redirector.defaults.controller = index
routes.redirector.defaults.action = redirector

и использую его в моем IndexController, но не могу заставить его работать.Я думаю, это из-за двойной косой черты в URL для пересылки.Может ли кто-нибудь предоставить мне решение, не удаляя 'http://', чтобы оно работало в Zend?

    public function redirectorAction() {          
        $this->_redirector->gotoUrl($this->getRequest()->getParam('url'));
    }

1 Ответ

3 голосов
/ 20 декабря 2010

Класс маршрута по умолчанию разделяет пути на компоненты, разделенные на /, поэтому: url никогда не будет полным окончательным URL.Вместо этого вы можете использовать маршрутизатор Regex, который вы можете определить, чтобы сопоставить полный URI запроса и сопоставить его с параметром URL.

routes.redirector.type = "Zend_Controller_Router_Route_Regex"
routes.redirector.route = "redirector/(.*)"
routes.redirector.defaults.module = default
routes.redirector.defaults.controller = index
routes.redirector.defaults.action = redirector
routes.redirector.map.1 = "url"
...