1

我在 application.ini 中设置路由,所以当我尝试访问 /moved 时,它会显示 cont/move。它有效,但前提是我输入moved的所有小写字母与第一行的设置完全相同。我怎样才能使MovedmoVed任何其他字母组合也起作用?我需要在 Bootstrap 中执行此操作以获得更好的控制吗?如何操作?

routes.test.route = moved
routes.test.defaults.controller = cont
routes.test.defaults.action = move
4

2 回答 2

3

这不是一个明智的做法。

URL 区分大小写是有原因的。您将从搜索引擎中获得重复的内容惩罚。用户也会感到困惑。

但是,您可以创建控制器插件来实现此目的:

public function preDispatch()
{
    $this->getRequest()->setControllerName(
        strtolower($this->getRequest()->getControllerName());
    )->setDispatched(false);
}
于 2011-02-20T09:47:11.013 回答
2

我在 Google 上搜索了几分钟,这个页面 (http://joshribakoff.com/?p=29) 涵盖了一个不错的补丁。此补丁覆盖请求对象,而不是调度程序或路由器。

于 2011-02-19T17:15:03.497 回答