完整匹配
完整匹配
如果希望仅仅匹配
http://tp5.com/hello/thinkphp
而不能访问这种地址
http://tp5.com/hello/thinkphp/city/shanghai
就可以使用完整匹配功能,路由定义规则改为:
Route::get('hello/:name$','index/index/hello');
路由规则最后用$结尾就表示该路由规则是完整匹配的。
(有部分情况下注册的路由规则是自动完整匹配的,比如说资源路由,我们后面会讲到。)
或者使用路由参数
Route::get('hello/:name','index/index/hello',['complete_match'=>true]);
两种方式的作用是相同的(实际上使用$结尾的路由定义最终也会解析成complete_match参数的方式)。
【5.1须知】
可以使用下面的方法定义局部完整匹配
Route::get('hello/:name','index/index/hello')->completeMatch();
如果需要全局的路由规则定义都是完整匹配的话,可以直接修改应用的配置参数:
'route_complete_match' => true
当开启全局完整匹配后,个别路由规则也支持单独关闭完整匹配,使用下面的方式即可:
Route::get('hello/:name','index/index/hello',['complete_match'=>false]);

本文介绍了ThinkPHP框架中如何实现路由的完整匹配,通过在路由规则末尾添加$符号或使用路由参数来确保URL的精确匹配。同时,文章提到了局部完整匹配的配置方法以及如何设置全局和局部的完整匹配规则。此外,还讲解了如何定义路由变量规则,通过正则表达式限制变量的匹配范围。
最低0.47元/天 解锁文章
951

被折叠的 条评论
为什么被折叠?



