2011-07-16 52 views
0

我做了一个正则表达式路由来将任何段路由到类别,除了2个值(家或约)。 现在我遇到的问题是,当用户浏览到我的基地网址,它也路由到类别。Zend路由器默认控制器

我环顾四周,我找不到一种方法来添加一个异常到我的正则表达式,以便主页路由索引,而不是类别控制器。

这是我的代码

<archive type="Zend_Controller_Router_Route_Regex"> 

    <route>(^(?!home$|about$).*$)</route> 

    <defaults> 
     <controller>category</controller> 
     <action>index</action> 
    </defaults> 

    <reverse>%s</reverse> 

</archive>` 

,如果我给我的例外仍然路由添加索引或默认类别

回答

0

添加一个空的URL映射到索引控制器和行动的静态路由。

<home type="Zend_Controller_Router_Route_Static"> 

    <route></route> 

    <defaults> 
     <controller>index</controller> 
     <action>index</action> 
    </defaults> 

</home> 
+0

如果我们有10条静态路由,该怎么办?我们是否需要分别为它们添加规则? – emaillenin

+0

听起来好像OP问题非常具体。每个静态URL映射到相同的控制器/动作,因此添加一个空路由来匹配/映射所有其他动态URL是快速和容易的。如果你所有的其他静态URL都需要映射到特定的控制器,那么你可以为每个控制器添加单独的静态路由(或者简单地回到:controller /:action url格式并让默认路由处理它)。 –