我正在尝试创建/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中使用它,但无法使其正常工作。我认为这是因为网址中的双正斜杠要转发。有人可以在不删除“http://”的情况下为我提供解决方案,以便在zend中使用吗?
public function redirectorAction() {
$this->_redirector->gotoUrl($this->getRequest()->getParam('url'));
}
答案 0 :(得分:3)
默认路由类将路径分成由/拆分的组件,因此: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"