我刚开始使用基于Zend的CMS在网站上工作。让我们说在routes.ini文件中指定了路由,其中一个看起来像这样:
routes.news.route = "/news/:nice/*"
routes.news.defaults.module = "default"
routes.news.defaults.controller = "news"
routes.news.defaults.action = "item"
routes.news.reverse = "/news/%s/*"
它运作得很好。但是,如果:nice
将是page-number
所以,我想要的是:
routes.news.route = "/news/(if !(:nice == page-number){ :nice}/*"
这是否可以理解?
答案 0 :(得分:0)
我不认为这样可以在路线规则中应用if和buts。而不是这种方式,你可以使用下面提到的解决方案。
nice
page-number
,则以编程方式抛出404
例外。否则继续执行其余代码。
public function testAction() {
if($this->getRequest()->getParam('nice') == 'page-number') {
throw new Zend_Controller_Action_Exception('Your message here', 404);
}
//Rest of the Code goes here...
}
如果您致电http://yourserverpath.com/index/test/nice/page-number
,则会显示404
页面,如有任何其他值,则会显示原始页面。