在我的项目中,我在索引控制器中定义了一些页面,例如ie。关于我们页面。为了让我不必输入domain.com/index/about
而domain.com/about
我有这条路线:
$route = new Zend_Controller_Router_Route_Static ( 'about', array (
'controller' => 'Index',
'action' => 'about'
) );
$router->addRoute ( 'about', $route );
它完成了这项工作。问题是,有时我有6或7页,我必须重复这个路线6或7次。有没有办法让我做一条始终从网址中删除“index
”的路线?我永远不会需要一个包含index
的网址。谢谢!
答案 0 :(得分:3)
您可以通过避免静态路由类型来编写动态路由:
$route = new Zend_Controller_Router_Route(
'/:action',
array (
'controller' => 'index',
'action' => 'index',
)
);
$router->addRoute('pages', $route);
这将添加一个名为' pages'这将匹配索引控制器中的任何单个操作。此路由中定义的操作和控制器仅仅是默认值,因为您没有将控制器作为变量传递,它将始终路由到IndexController。该操作将默认为indexAction,但可以被路由覆盖,即:
/about -> IndexController / aboutAction
/contact -> IndexController / contactAction
etc ...
请记住,这将覆盖任何其他路线,因此您需要正确构建路由heirachy。稍后在流程中定义的路由将覆盖已定义的路由。
有关详细信息,请查看文档:{{3}}