【问题标题】:CakePHP routing will not match URLCakePHP 路由将不匹配 URL
【发布时间】:2014-01-01 22:41:19
【问题描述】:

我正在尝试进行一些自定义路由,以便我的管理面板页面都可以在管理 URL 段下共存。到目前为止,这不起作用。

我已经定义了以下规则:

core.php:

Configure::write('Routing.prefixes', array('landing'));

routes.php:

Router::connect('/admin/landing/:action/', array('controller' => 'admin', 'landing' => true, 'prefix' => 'landing'));
Router::connect('/admin/landing/:action/*', array('controller' => 'admin', 'landing' => true, 'prefix' => 'landing'));

我也尝试过手动指定一个动作,甚至是一个完全静态的路由:

Router::connect('/admin/landing/edit/*', array('controller' => 'admin', 'action' => 'landing_edit'));

这也行不通。

值得一提的是,这个 Cake 站点是半封装在遗留应用程序中的;因此,URL 层次结构变为hostname/pages/controller 而不是hostname/controller。我尝试在路由模式中包含/pages,但这没有效果。

编辑:好吧,这似乎是我的愚蠢 - 较早的路线意外地抢占了我的新规则。感谢 Robert Rozas 通过 cmets 为我指明了正确的方向。

【问题讨论】:

  • 如果你在浏览器中写下类似的内容:yousite/admin/landing/edit/3 ...你有 404 响应什么的?
  • 实际上,它加载了landing() 方法......也许这就是问题所在。打算快速重新排序我的路线。
  • 我的 debug-fu 又成功了 xD
  • 你是个忍者。如果你能把它变成一个答案(随时把我当成白痴来骂我)我会接受的。
  • 认为它已经完成...随时询问,我很乐意提供帮助。敬礼 ;)

标签: php cakephp cakephp-2.0 url-routing


【解决方案1】:

当您使用路由时,您可以通过网络浏览器调试您的 http 请求,因此如果您在导航中输入类似以下内容:

yousite/admin/landing/edit/3

您可以调试请愿书,并查看您的路由是否重定向到您想要的方法。我经常使用 restful api,使用 Slim 作为我的框架,所以我有处理这些路由问题的经验。

感谢 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多