对于新的CMS,我开发了一个页面模块,它允许我管理网站的树结构。每个页面都可从URL http://www.example.com/pageslug/到达,其中Pagelug标识正在调用的页面。通过PageController路由除现有控制器之外的所有请求(Zend Framework)
我现在想要实现的是一种路由,它允许我将所有传入请求路由到单个PagesController,除非它是对现有控制器(例如图像)的请求。
向页面控制器发送所有请求很容易,但如何排除现有的控制器? 这是我的模块引导程序。我如何能在最preferrable方式
<?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')
)
);
}
}
很好的问题,我没有找到适合这种情况的解决方案 - 我使用黑客和技巧,我认为最优雅的方式是“编写自定义路由类”,如第二回答中推荐的 – 2010-03-29 10:13:13