对于新的 CMS,我开发了一个页面模块,它允许我管理网站的树结构。每个页面都可以通过 url 访问http://www.example.com/pageslug/ http://www.example.com/pageslug/其中pageslug 标识被调用的页面。
我现在想要实现的是一条路由,允许我将所有传入请求路由到单个 PagesController,除非它是对现有控制器的请求(例如图像)。
捕获对页面控制器的所有请求很容易,但如何排除现有控制器?
这是我的模块引导程序。我怎样才能以最优选的方式实现这一点
<?php
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initRoute()
{
$this->bootstrap('frontController');
/* @var $frontcontroller Zend_Controller_Front */
$frontcontroller = $this->getResource('frontController');
$router = $frontcontroller->getRouter();
$router->addRoute(
'all',
new Zend_Controller_Router_Route('*',
array('controller' => 'pages',
'action' => 'view')
)
);
}
}
Zend 路由按顺序工作 - 如果您在第一个路由之后添加第二个路由,它将优先如果匹配。在我自己的 Zend 项目中,我有很多路线,其中第一个与您的非常相似,是一条包罗万象的路线。但是,它下面任何与 url 匹配的内容都会覆盖它 - 所以只需尝试添加稍微更具体的路由(如果所有 /user/ 请求都发送到 user_controller,请添加 /user/* 路由)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)