php我有添加路线的方法:
public function addRoutes()
{
$front = Zend_Controller_Front::getInstance();
$redirect = $front->getRouter();
$router = new Zend_Controller_Router_Route_Regex(
"p\/(a-zA-Z0-9)\.htm",
array(
'controller'=>'page',
'action'=>'index',
1=>'ja.htm'
),
array( 1 => 'page_name')
);
$route2 = new Zend_Controller_Router_Route_Regex("(a-zA-Z0-9)\.html",
array('controller'=>'page',
'action'=>'index',
1=>'ja.html'),
array(1=>'page_name'));
$redirect->addRoute('pages',$router);
$redirect->addRoute('hmtmled',$route2);
$front->setRouter($redirect);
}
我试图输入url:p / ja.htm但是我收到错误:指定的控制器无效(p)。我知道它的默认路由的原因,但如何改变它?
答案 0 :(得分:0)
您尝试删除默认路线:
//摘自ZF参考 24.5.4。默认路由 ...如果您这样做 您可以在路由架构中不希望使用此特定的默认路由 通过创建自己的“默认”路线(即存储它)来覆盖它 在'default'的名义下)或通过使用完全删除它 removeDefaultRoutes():
// Remove any default routes
$router->removeDefaultRoutes();
答案 1 :(得分:0)
该方法是您Bootstrap
课程的一部分吗?如果是这样,你确定它正在运行吗?请记住,自动调用的Bootstrap
方法是_initXXX()
形式的方法(注意前导下划线)。
此外,正如@Tim Fountain在评论中明确指出的那样,正则表达式需要:
p/([0-9A-Za-z]+)\.htm