fastadmin的application文件夹下面的config.php文件,已经为我们设置好了,请查看这两个配置。
'url_route_on' => true,
'url_route_must'=> false,
这表明, 只需要对需要定义路由规则的访问地址定义路由规则,其它的仍然按照第一种普通模式的 PATH_INFO
模式访问URL。
如果你希望所有的URL路由都完全匹配,那么,
'route_complete_match' => true,
此外,提一句,在URL路由里面,可以设置参数的隐式传递,
'news/:id'=>'news/info?status=1&app_id=5',
后面的status和app_id这两个参数,是隐式传递。
URL路由定义采用\think\Route类的rule方法注册,
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
Route::get('new/:id','News/read'); // 定义GET请求路由规则
Route::post('new/:id','News/update'); // 定义POST请求路由规则
Route::put('new/:id','News/update'); // 定义PUT请求路由规则
Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则
Route::any('new/:id','News/read'); // 所有请求都支持的路由规则
一般是在application目录下的route.php里面注册URL路由,例如:
return [
//别名配置,别名只能是映射到控制器且访问时必须加上请求的方法
'__alias__' => [
'company' => 'index/company/login',
'c' => 'index/company/index',
],
//变量规则
'__pattern__' => [
],
// 域名绑定到模块
// '__domain__' => [
// 'admin' => 'admin',
// 'api' => 'api',
// ],
];
如果你的路由规则比较特殊,可以在路由定义的时候使用组合变量。
Route::get('item--','product/detail',[],['name'=>'\w+','id'=>'\d+']);
备注:可以不使用分隔符。
路由可以有参数检测,例如域名检测,行为检测,后缀检测,HTTPs检测等等。