强制使用别名控制器



我有一个控制器,名为:SomeLongUnfriendlyName
在路由器中,我给它一个别名:CoolName
现在,每当有人呼叫/CoolName/theAction时,/SomeLongUnfriendlyName/theAction就会被执行。目前为止,一切都好。
我的问题是我想拒绝使用原始SomeLongUnfriendlyName名称。

怎么能做到呢?


流行

您应该能够将其添加为重定向路由(如果您使用的是 Cake 2.x)。我从未尝试过任何东西,但根据我对路由系统的了解,如果您将其放在最后并且其他路由都没有捕获,它将正确重定向到别名控制器。

Router::redirect(
  '/SomeLongUnfriendlyName/*', 
  array('controller' => 'CoolName'), 
  array('status' => 302)
);

在这里,我们将您不想使用的名称重定向到新名称。

可以使用应用控制器的 beforeFilter 方法来检查给定的 URI 是否具有相应的路由。如果是这样,只需向路由类发出重定向即可。确保检查浏览器上显示的 URL 以避免无限重定向。

最新更新