Zend观点:行动领域

时间:2011-08-23 18:48:48

标签: zend-framework

我正在寻找引导程序中查看URL然后加载特定模块/控制器/操作的方法。

但我不希望用户看到它。

这可行吗?

3 个答案:

答案 0 :(得分:1)

我不确定你是在寻找主机名路由,还是正常的路由,所以我会回答这两个问题。

Zend_Controller_Router_Route的

domain.com/users/layke

使用Zend_Controller_Route,您可以创建一条路线,将抓取"layke"并将其用作参数。这将是一个标准的路线。

$route = new Zend_Controller_Router_Route(
    'users/:username',
    array(
        'controller' => 'profile',
        'action'     => 'users'
    )
);
$router->addRoute('user', $route);

然后还有主机名匹配......

Zend_Controller_Router_Route_Hostname

例如,(如指南所提供的)......

你可以使用..

:username.domain.com要映射到

/default/users/:username

Zend_Controller_Router

$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
    ':username.example.com',
    array(
        'controller' => 'profile',
        'action'     => 'users'
    )
);     
$plainPathRoute = new Zend_Controller_Router_Route_Static('');     
$router->addRoute('user', $hostnameRoute->chain($plainPathRoute));

示例文档:Zend_Controller_Router

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以在Zend(http://framework.zend.com/manual/en/zend.controller.router.html)中使用路由,然后在apache(http://httpd.apache.org/docs/current/mod/mod_rewrite.html)中使用mod_rewrite + .htacess或在IIS中使用URL重写模块(http://www.iis.net/download/URLRewrite

这些功能对于使用Zend来说是“必需的”,因为URL mysite.com/demo1/demo2/实际上转换为类似mysite.com/index.php?controller=demo1?action=demo2