仅隐藏 URL 中的默认控制器名称

发布于 2025-01-01 13:11:38 字数 235 浏览 0 评论 0原文

如果操作位于默认控制器中,是否可以强制 Zend_Router 检查 defaultController 的操作,并跳过 URL 中的控制器名称?

即。
/defaultControllerName/action/ -> /行动/
/nonDefaultContorller/action/ -> /nonDefaultContorller/action/

如果不可能,处理这种情况的惯例是什么?

Is it possible to force Zend_Router to check the defaultController for it's Actions, and skip the controller name in the URL, if the action is in the default controller ?

ie.
/defaultControllerName/action/ -> /action/
/nonDefaultContorller/action/ -> /nonDefaultContorller/action/

If it's impossible what's the convention to handle this situation ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沒落の蓅哖 2025-01-08 13:11:38

静态路由可以实现这一点,但您必须为索引控制器中的每个操作添加一个。

因此 mysite.com/add 将转到索引控制器添加操作。

protected function _initRoutes()
{
    $frontcontroller = Zend_Controller_Front::getInstance();
    $router = $frontcontroller->getRouter();

    $route = new Zend_Controller_Router_Route_Static('add', array('controller'=>'index','action'=>'add'));

    $router->addRoute('add',$route);
}

Static routes can accomplish this but you'd have to add one for each of your actions in the index controller.

So mysite.com/add would go to the index controller add action.

protected function _initRoutes()
{
    $frontcontroller = Zend_Controller_Front::getInstance();
    $router = $frontcontroller->getRouter();

    $route = new Zend_Controller_Router_Route_Static('add', array('controller'=>'index','action'=>'add'));

    $router->addRoute('add',$route);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文