在ZendFramework中,我想将路由起始地址为~
的网址路由到特殊控制器和操作,以便其他网址不会以~
正常工作。路由URL以特殊字符开头
例如看空两条网址路线:
mysite.com/~user
和
mysite.com/admin
我怎样才能做到这一点?
在ZendFramework中,我想将路由起始地址为~
的网址路由到特殊控制器和操作,以便其他网址不会以~
正常工作。路由URL以特殊字符开头
例如看空两条网址路线:
mysite.com/~user
和
mysite.com/admin
我怎样才能做到这一点?
尝试和你的引导
// Get the instance of the router
$router = Zend_Controller_Front::getInstance()->getRouter();
// Set up a new regex router to match routes starting with ~
$route = new Zend_Controller_Router_Route_Regex(
'(^\~)',
//This route should use a 'special' controller
array(
'controller' => 'special',
'action' => 'index'
)
);
// Add the new route to the router
$router->addRoute('archive', $route);
内使用
您将需要一个名为Special
的控制器来响应路由到此路由器的请求。
不确定zend的具体情况,但他们最好的方法是在url路由器开展业务之前添加一个哈希查找表。
因此,可以说mod_rewrite的转换这样的: mysite.com/~user
这样: mysite.com/index.php?path=~user
,那么你会做这样的事情:
$path = $_GET['path'];
$url_mod = array(
'~user'=>'my_other_controller',
'admin'=>'my_other_controller',
);
if(isset($url_mod[$path)) {
$path = $url_mod[$path];
}
注意问题,我需要一个路由'URL'或任何我可以在ZendFramework中使用的方法。 – 2011-04-10 16:13:26
我试了一下,错误信息是'Invalid controller specified(〜user)'。 – 2011-04-15 16:45:39
你会得到什么网址? – 2011-04-15 16:48:21
我试试这个:'http:// localhost:8080 /〜user'。 – 2011-04-16 14:15:55