在ZendFramework中,我想将以~
开头的网址路由到特殊控制器和操作,以便其他网址不会以~
正常工作开始。
例如,请参阅以下两个网址路线:
mysite.com/~user
和
mysite.com/admin
我该怎么做?
答案 0 :(得分:1)
在你的Bootstrap中试试并使用它
// 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
的控制器来响应路由此路由器的请求。
答案 1 :(得分:-1)
不确定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];
}