路由模式:普通、强制和混合
普通模式:
//配置文件关闭路由,完全使用默认的PATH_INFO方式URL 'url_route_on' => false,
关闭路由后的普通模式任然可以通过操作方法的参数绑定、控制器和空操作等特性实现url地址的简化
强制模式:
//配置文件如下配置 'url_route_on' => true, 'url_route_must' => true, //这种方式下面必须严格给每一个访问地址定义路由规则(包括首页),否则将抛出异常。 //首页的路由规则采用/定义即可,例如下面把网站首页路由输出Hello,world! Route::get('/',function(){ return 'Hello,world!'; });
混合模式:
//开启路由,并使用路由定义+默认PATH_INFO方式的混合 //配置如下 'url_route_on' => true, 'url_route_must'=> false, //该方式下面,只需要对需要定义路由规则的访问地址定义路由规则,其它的仍然按照第一种普通模式的PATH_INFO模式访问URL
动态注册和路由规则定义两种方式
路由定义采用\think\Route
类的rule
方法注册,通常是在应用的路由配置文件application/route.php
进行注册,格式是
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
请求类型不指定的话默认为任何请求类型包含(GET、POST、PUT、DELETE、*表示任何其他请求)
ThinkPHP5.0的路由规则定义是从根目录开始,而不是基于模块名的。
application/route.php注册 然后访问变成http://serverName/new/5
use think\Route; // 注册路由到index模块的News控制器的read操作 Route::rule('new/:id','index/News/read');