ThinkPHP 路由功能
来源:互联网 发布:中国大数据企业50强 编辑:程序博客网 时间:2024/06/14 09:26
路由功能,就是配置 URL,让URL更加的简洁和优雅。路由模式只对PATHINFO 模式和兼容模式起作用。
一.路由定义
启用路由前提是你的 URL 支持PATHINFO模式或者兼容模式,而ThinkPHP 默认的就是 PATHINF 模式。
'URL_ROUTER_ON'=>true,
//配置路由规则
'URL_ROUTE_RULES'=>array(
//每条键值对,对应一个路由规则
),
可以通过设置默认模块进行去除。
//设置模块以及默认模块
'MODULE_ALLOW_LIST' => array('Home','Admin'),
'DEFAULT_MODULE' => 'Home',// 默认模块,可以省去模块名输入
路由规则定义的格式为:'路由表达式'=>'路由地址和参数',路由表达式包括规则路由和正则路由两种。
二、规则路由
规则路由是ThinkPHP 设计的一种简单实用的路由规则
1、静态地址路由
'u'=>'User/index',
这里只要输入:http://localhost/demo39/u
对应的原URL:http://localhost/demo39/User/index
'u/:id'=>'User/index',
这里只要输入:http://localhost/demo39/u/5
对应的原URL:http://localhost/demo39/User/index/id/5
这里的5其实就是传递的id值,通过$_GET['id']获取。
3、静态地址和动态地址结合路由
'u/:type/:attr/:list'=>'User/index',
这里只要输入:http://localhost/demo39/u/5/6/7
对应的原URL:
http://localhost/demo39/User/index/type/5/attr/6/list/7
这里的567分别对应了动态type、attr、list
4、全动态地址(混乱,容易冲突,使用较少)
':u/:id'=>'User/index',
这里只要输入:http://localhost/demo39/u/5
对应的原URL:http://localhost/demo39/User/index/id/5
这里的u和5都是可以随便输入的
'u/:id\d'=>'User/index',
给id后面加上一个正则的\d表示只能传递数字
b、支持函数
'u/:id\d|md5'=>'User/index',
给id进行md5加密
c、可选传参
'u/[:id\d]'=>'User/index',
这样的话,参数处在可选状态
d、$表示后面不允许再有东西
'u/:id$'=>'User/index',
),
正则路由也就是采用正则表达式定义路由的一种方式, 很多复杂的路由设置无法通过规则路由设置,则可以使用正则路由。
//正则路由
'/^u\/(\d{2})$/'=>'User/index?id=:1',
后面用普通的 URL 模式对应规则,不能使用'User/index/id/:1',
这里的:1表示对应第一个正则圆括号。
//正则路由也支持函数
'/^u\/(\d{2})$/'=>'User/index?id=:1|md5',
静态路由其实就是规则路由的简化版 (又称 URL 映射) , 它就是撇除了动态路由的功能。
//配置静态路由
'URL_MAP_RULES'=>array(
'u/i'=>'User/index',
),
PS:由于性能问题,ThinkPHP把 MAP替换为 ROUTER,专门处理静态路由。
有时,我们并非需要执行控制器的操作方法。可以用闭包定义一些特殊的需求的路由。
//配置闭包定义,不执行控制器方法
'URL_ROUTE_RULES'=>array(
//规则路由
'u/:id'=>function($id) {
echo 'id:'.$id;
},
//正则路由
'/^u\/(\d{2})$/'=>function($id) {
echo 'id:'.$id;
},
),
- Thinkphp 的路由功能
- ThinkPHP URL 路由功能
- ThinkPHP 路由功能
- 【Thinkphp教程】URL路由功能解析
- ThinkPHP URL 路由功能详解与实例
- ThinkPHP 路由
- Thinkphp路由
- thinkphp路由
- ThinkPHP 路由介绍
- thinkphp 范路由
- ThinkPHP的URL路由
- Thinkphp url路由配置
- ThinkPHP URL路由解析
- thinkphp 配置URL路由
- thinkphp路由形式
- nginx thinkphp路由支持
- ThinkPHP URL路由解析
- thinkphp路由分页
- day12 异常
- 框架源码分析心得
- The type java.lang.Object cannot be resolved. It is indirectly referenced from r
- 解决java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file
- 字符表达式
- ThinkPHP 路由功能
- Linux kernel development
- Linux下如何查看系统启动时间和运行时间
- 2016 年度盘点 十大(链接)
- 使用Origin画出复杂网络博弈中合作率时间演化图(学术论文)
- 如何获取Android唯一标识(唯一序列号)
- 知识库--Digester(72)
- Explain的使用和介绍
- 图片动画播放(AnimationDrawable)