需要使用Zend Route进一步缩短简易网址

时间:2011-05-23 08:50:04

标签: zend-framework url-rewriting url-routing

我可能会在这里问一下,但我想知道如何进一步缩短网址,使它们看起来没有包含控制器。

例如:我想缩短它:

www.mysite.com/users/Bob-123

www.mysite.com/Bob-123

或类似www.mysite.com/bob-123-user

的内容

这里有什么想法吗? - 我在这里使用Zend框架

2 个答案:

答案 0 :(得分:0)

你可以在Zend Router的帮助下完成。

在这里,您需要获取用户名并向其添加路由。通过这种方式,它将识别需要获取的控制器和操作。

$router = $this->_front->getRouter();

$route = new Zend_Controller_Router_Route(
    ':username',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    )
);

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

取自zend manual

的示例

答案 1 :(得分:0)

在您的application.ini中,您可以使用Zend_Controller_Router_Route_Regex执行此操作:

resources.router.routes.user.route = "(\w+)-(\d+)"
resources.router.routes.user.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.user.defaults.controller = users
resources.router.routes.user.defaults.action = index
resources.router.routes.user.map.1 = username
resources.router.routes.user.map.2 = id
resources.router.routes.user.reverse = "/%s-%d"

您需要指定自己的操作和控制器。 希望这会有所帮助。