从URL中删除控制器索引 - Zend Framework 1.12和路由

时间:2014-05-06 00:51:13

标签: php zend-framework routing zend-framework-mvc

在我的项目中,我在索引控制器中定义了一些页面,例如ie。关于我们页面。为了让我不必输入domain.com/index/aboutdomain.com/about我有这条路线:

$route = new Zend_Controller_Router_Route_Static ( 'about', array (
        'controller' => 'Index',
        'action' => 'about'
) );

$router->addRoute ( 'about', $route );

它完成了这项工作。问题是,有时我有6或7页,我必须重复这个路线6或7次。有没有办法让我做一条始终从网址中删除“index”的路线?我永远不会需要一个包含index的网址。谢谢!

1 个答案:

答案 0 :(得分:3)

您可以通过避免静态路由类型来编写动态路由:

    $route = new Zend_Controller_Router_Route(
        '/:action', 
        array (
            'controller' => 'index',
            'action' => 'index',
        )
    );
    $router->addRoute('pages', $route);

这将添加一个名为' pages'这将匹配索引控制器中的任何单个操作。此路由中定义的操作和控制器仅仅是默认值,因为您没有将控制器作为变量传递,它将始终路由到IndexController。该操作将默认为indexAction,但可以被路由覆盖,即:

/about -> IndexController / aboutAction
/contact -> IndexController / contactAction
etc ...

请记住,这将覆盖任何其他路线,因此您需要正确构建路由heirachy。稍后在流程中定义的路由将覆盖已定义的路由。

有关详细信息,请查看文档:{​​{3}}