hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP框架 - ThinkPHP - 正文 请牢记本站网址www.sosophp.cn

thinkphp是怎样加载路由【ThinkPHP教程】

2019-11-27ThinkPHP搜搜PHP网56°c
A+ A-

ThinkPHP URL 路由简介

简朴的说,URL 路由就是许可你在肯定划定规矩下定制你须要的 URL 模样,以到达美化 URL ,进步用户体验,也有益于搜索引擎收录的目标。

例子

底本的 URL 为:

http://www.5idev.com/index.php/Products/Show/category/5/id/123

该 URL 的本意是显现第 5 分类中 id 为 123 的产物。经由 URL 路由改写后 URL 可认为:

http://www.5idev.com/index.php/product/5/123

假如运用 .htaccess 文件的 Rewrite 划定规矩再把进口文件隐蔽,则上面的 URL 能够进一步简化为:

http://www.5idev.com/product/5/123

这个 URL 地点就相对比较简朴易容。

提醒:运用 Apache 的 URL Rewrite 划定规矩也能到达 URL 定制的功用,在此就不展开了,感兴趣的请参看 Apache Rewrite 相干的文章。

ThinkPHP URL 路由设置

在 ThinkPHP 中要运用 URL 路由功用,须要做以下设置:

在项目设置文件 Conf/config.php 内里开启路由功用(设置为 true):

'URL_ROUTER_ON' => true,

路由划定规矩定义

与 2.x 版本差别,3.0 路由划定规矩定义于项目设置文件 config.php 内,花样为数组花样,细致定义划定规矩又分为划定规矩路由和正则路由。划定规矩路由语法以下:

花样1:'路由划定规矩'=>'[分组/模块/操纵]?分外参数1=值1&分外参数2=值2...'
花样2:'路由划定规矩'=>array('[分组/模块/操纵]','分外参数1=值1&分外参数2=值2...')
花样3:'路由划定规矩'=>'外部地点'
花样4:'路由划定规矩'=>array('外部地点','重定向代码')

语法申明

路由划定规矩等于我们要在 URL 中显现出来划定规矩,背面元素值部份是现实的 URL 地点及参数路由划定规矩中假如以 : 开首,示意动态变量,否则为静态地点花样2的分外参数能够传入数组或许字符串路由划定规矩支撑变量的数字束缚定义,比方:'product/:id\d'=>'Products/Show'路由划定规矩非数字变量支撑消除,比方 'news/:cate^add|edit|delete'=>'News/category'路由划定规矩支撑完全婚配定义,比方:'product/:id\d$'=>'Products/Show'路由划定规矩中的静态地点部份不辨别大小写外部地点中假如要援用动态变量, 采纳 :1、:2 的体式格局划定规矩路由能够支撑 全动态和消息连系定义,比方 ':user/blog/:id'=>'Home/Blog/user'

这些划定规矩及语法申明比较艰涩难明,下面会有实例来对比以便明白上述路由划定规矩及语法申明。

假如在设置文件里定义了路由开启功用,体系在实行 Dispatch 剖析的时刻,会推断当前 URL 是不是存在定义的路由称号,假如有就会根据定义的路由划定规矩来举行 URL 剖析。

ThinkPHP URL 路由实例

以本文最先的例子为例,看该路由是怎样定义的。在项目设置文件 Conf/config.php 里定义以下划定规矩:

//路由定义
'URL_ROUTE_RULES'=> array(
'product/:category\d/:id\d'=>'Products/Show', //划定规矩路由
),

当我们接见以下这个地点的时刻:

http://www.5idev.com/index.php/product/5/123

会将该地点剖析到 Products 模块的 Show 操纵,并传入 get 参数 category=5&id=123。

假如有分外的牢固参数,如 status=1,能够定义路由:

'product/:category\d/:id\d'=>'Products/Show?status=1', //划定规矩路由

也即婚配下面这个 URL 地点:

http://www.5idev.com/index.php/product/5/123/1

上面都是按花样1来定义的路由,在有分外参数的状况下,能够转换为第2种定义花样:

'product/:category\d/:id\d'=>array('Products/Show','status=1')

上面的路由划定规矩中 \d 示意只婚配数字,当不加此束缚时,则可婚配一切字符,这也是默许状况。假如要严厉商定传入的参数花样,请运用正则路由定义划定规矩。

路由花样:外部地点

关于路由花样 3 和花样 4,则是检测到婚配的路由花样,则跳转到外部地点,区别是花样 4 有重定向代码,如 301 代表永远重定向。

更多ThinkPHP相干技术文章,请接见ThinkPHP运用教程栏目举行进修!

以上就是thinkphp是怎样加载路由的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
thinkphp是怎样加载路由【ThinkPHP教程】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: