如何在Zend中缩短我的网址

时间:2011-03-13 19:00:57

标签: php zend-framework url

例如,我正在为用户个人资料/信息中心使用以下网址:

example.com/person/person/profile
example.com/person/person/dashboard

模块,第二控制器个人资料信息中心操作

但我希望如果用户转到以下网址,那么他们应该指出上面分别提到的相同网址:

example.com/person/profile
example.com/person/dashboard

有没有办法总是从URL中删除模块名称?记住我想保留当前的目录结构。

由于

1 个答案:

答案 0 :(得分:5)

你可以使用路由,在你的bootstrap中添加这个

protected function _initRoutes()
{
    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini');
    $router = new Zend_Controller_Router_Rewrite();
    $router->addConfig($config, 'routes');
    Zend_Controller_Front::getInstance()->setRouter($router);
}

然后在你的配置导演中创建一个名为routes.ini的文件,这将包含你的自定义路线,试试这些

routes.person_profile.route = "person/profile"
routes.person_profile.defaults.controller = person
routes.person_profile.defaults.action = profile
routes.person_profile.defaults.module = person

routes.person_dashboard.route = "person/dashboard"
routes.person_dashboard.defaults.controller = person
routes.person_dashboard.defaults.action = dashboard
routes.person_dashboard.defaults.module = person

这里我们定义两条路线,记住给每个路线一个我称之为person_profileperson_dashboard的唯一名称。

route值是将被controlleractionmodule值覆盖的URI,例如路由person/profile将自动覆盖已分派到person控制器,person模块和profle操作。

希望有所帮助。