Próbuję utworzyć linki, takie jak /redirector/http://www.google.co.uk, aby uruchamiał niestandardowe działanie przekierowujące, które rejestruje użycie linków. Skonfigurowałem router za pomocą poniższego kodu,
routes.redirector.route = /redirector/:url
routes.redirector.defaults.module = default
routes.redirector.defaults.controller = index
routes.redirector.defaults.action = redirector
i używam tego w moim IndexController, alenie mogę go uruchomić. Myślę, że to z powodu podwójnego ukośnika do przodu w adresie URL, do którego należy przejść. Czy ktoś może dostarczyć mi rozwiązanie bez usuwania „http: //”, aby działało to w Zend?
public function redirectorAction() {
$this->_redirector->gotoUrl($this->getRequest()->getParam("url"));
}
Odpowiedzi:
3 dla odpowiedzi № 1Domyślna klasa trasy dzieli ścieżki nakomponenty podzielone przez /, więc: url nigdy nie będzie pełnym końcowym adresem URL. Zamiast tego możesz użyć routera Regex, który możesz zdefiniować, aby dopasować pełny adres URL żądania i mapę do parametru adresu 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"