Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend路由器默认控制器_Php_Zend Framework_Routing - Fatal编程技术网

Php Zend路由器默认控制器

Php Zend路由器默认控制器,php,zend-framework,routing,Php,Zend Framework,Routing,我做了一个正则表达式路由,将任何段路由到类别,除了2个值home或about。 现在的问题是,当用户浏览到我的基本url时,它也会路由到类别 我环顾四周,找不到一种方法向我的正则表达式中添加一个异常,以便主页路由到索引而不是类别控制器 这是我的密码 <archive type="Zend_Controller_Router_Route_Regex"> <route>(^(?!home$|about$).*$)</route> <def

我做了一个正则表达式路由,将任何段路由到类别,除了2个值home或about。 现在的问题是,当用户浏览到我的基本url时,它也会路由到类别

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

这是我的密码

<archive type="Zend_Controller_Router_Route_Regex">

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

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

    <reverse>%s</reverse>

</archive>`

如果我将索引或默认值添加到我的异常,它仍然会路由到类别。添加一个静态路由,将空url映射到索引控制器和操作

<home type="Zend_Controller_Router_Route_Static">

    <route></route>

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

</home>

如果我们有10条静态路线呢?我们需要为每一个单独添加规则吗?听起来OP问题非常具体。每个静态URL都映射到同一个控制器/操作,因此添加一个空路由来匹配/映射所有其他URL既快捷又简单。如果所有其他静态url都需要映射到特定的控制器,那么您可以为每个控制器添加单独的静态路由,或者简单地返回到:controller/:action url格式,让默认路由处理它。