我正在寻找引导程序中查看URL然后加载特定模块/控制器/操作的方法。
但我不希望用户看到它。
这可行吗?
答案 0 :(得分:1)
我不确定你是在寻找主机名路由,还是正常的路由,所以我会回答这两个问题。
即 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);
然后还有主机名匹配......
例如,(如指南所提供的)......
你可以使用..
:username.domain.com
要映射到
/default/users/:username
。
$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));
答案 1 :(得分:0)
听起来像是在主机名路线之后:http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.hostname
答案 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