【问题标题】:Forcing the use of aliased controllers强制使用别名控制器
【发布时间】:2012-06-09 15:58:54
【问题描述】:

我有一个控制器,名为:SomeLongUnfriendlyName
在路由器中,我给了它一个别名:CoolName
现在,每当有人调用/CoolName/theAction 时,就会执行/SomeLongUnfriendlyName/theAction。到目前为止一切顺利。
我的问题是我想拒绝使用原来的SomeLongUnfriendlyName名字。

怎么做?


啪啪啪

【问题讨论】:

  • 我想你可以将它路由到其他会给出 404 的地方,但这似乎很愚蠢。或者,实现一个自定义路由类,如果它检测到原始控制器名称将重定向。不管怎样,这似乎有点傻。我很好奇这背后的原因?
  • SEO,我有几个控制器做类似的工作,但我需要它们以相同的别名输出数据
  • 你可以使用htaccess文件来阻止它

标签: routing controller cakephp-1.3 alias


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多