路由功能由\think\Route类完成。

概述

由于ThinkPHP5.0默认采用的URL规则是:

http://server/module/controller/action/param/value/...

路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。

新版的路由功能做了大量的增强,包括:

  • 支持路由到模块的控制器/操作、控制器类的方法、闭包函数和重定向地址,甚至是任何类库的方法;
  • 闭包路由的增强;
  • 规则路由支持全局和局部变量规则定义(正则);
  • 支持路由到任意层次的控制器;
  • 子域名路由功能改进;
  • 支持路由分组并支持分组参数定义;
  • 增加资源路由和嵌套支持;
  • 支持使用行为或者自定义函数检测路由规则;

ThinkPHP5.0的路由支持三种方式的URL解析规则。

5.0的路由是针对应用而不是针对模块,因此路由的设置也是针对应用下面的所有模块,如果希望不同的模块区分不同的设置(例如某些模块需要关闭路由,某些模块需要强制路由等),需要给该模块增加单独的入口文件,并作如下修改:

// 定义项目路径
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架基础文件
require __DIR__ . '/../thinkphp/base.php';
// 绑定当前入口文件到admin模块
\think\Route::bind('admin');
// 关闭admin模块的路由
\think\App::route(false);
// 执行应用
\think\App::run()->send();