ThinkPHP5.1 路由匹配规则

新手上路,请多包涵

问题描述

如何才能让根路由'/'及其所有的子路由'/**'都指向同一个控制器

问题出现的环境背景及自己尝试过哪些方法

由于TP5会默认把 '/' 自动变成完整匹配
所以Route::get('/', 'index')并不能匹配'/test'

// 就算把`RuleGroup.php`文件内的这一段代码注释掉 仍然无法匹配子路由
if ('/' === $rule || '' === $rule) {
    // 首页自动完整匹配
    $rule .= '$';
}

目前的做法是使用Route::get('/:_', 'index')来实现
不过这样的做法会污染param

// 匹配路由`/a/b/c/d/e`
// 请求参数`param`:
// [param] => Array
//     (
//         [_] => a,
//         [b] => c,
//         [d] => e
//     )

请问有没有更好的实现方式

阅读 2.2k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进