1.路由快速入门
1.1 概念
是指把数据从一个地方传送到另一个地方的行为和动作,而路由器,正是执行这种行为动作的机器。它的英文名称为Router,是一种连接多个网络或者网段的网络设备,它能将不同网络或者网段之间的数据信息进行“翻译”,已使它们能够相互“读懂”对方的数据,从而构成一个更大的网络。
总结起来就一句话:路由就是网络数据传输的最佳路径!( 广义上解释)请看下图:
1.2 项目当中的路由
一个有效的Url请求的执行流程
路由:路由就像一个总调度,把用户不同的请求,分发到对应的URL地址上(以项目中的方式来讲)
ThinkPHP5的路由过程,就是从入口文件开始,找到对应方法的过程。
URL: http://tp5.com/index.php/index/user/add/101/peter
1.3 传统URL地址以及TP5普通路由
传统URL地址的基本语法:http://域名/入口文件?m=模块名&c=控制器名&a=方法名&键1=值1&键2=值2
例如:http://tp3.com/index.php?m=index&c=user&a=add&id=101
(图为tp3的路由地址解析)
ThinkPHP5已经废弃传统URL模式,全部采用PATH_INFO模式。
例子:http://tp5.com/index.php/index/user/add/101 PATH_INFO模式地址
PATH_INFO模式的特点:PATH_INFO模式地址,不仅仅缩短了URL,最重要的是看上去与静态网页地址几乎完全一样,这样就达到了欺骗搜索引擎,提高网页收录效果,利于网站优化与推广!
1.4 注册路由
1.4.1 路由规则写在哪?
(1).路由规则写在与应用配置同级的route.php文件中;
(2).路由规则主要使用路由类:Route注册
1.4.2 注册路由的步骤
1.4.2.1 为啥要注册路由
原因:若不开启路由,即URL很长,并且别人很容易就知道你所指向的模块,安全风险高,易被路由注入①,为了防止这种情况发生。
注:①请自行百度,搜索路由注入。
1.4.2.2 开启路由
(1)Thinkphp5.0版本:
需要打开thinkphp/convention.php 查看url_route_on是否开启路由,一般是开启的
(2)Thinkphp5.1的版本:
不用查看,因为直接支持路由配置,所以在thinkphp/convention.php没有这个url_route_on这个配置,所以这步在5.1中是可以不用管。
1.4.2.3 注册路由
5.1版本默认就在application 同级下就有route的配置文件 ,之前的版本需要重新的定义route.php这文件
路由访问效果
若按照现在之前的方式已经不能使用,已经被注册的路由,也就不能使用PATHINFO模式访问
1.5 路由的作用
1.根据事先定义的路由规则,检验URL请求,确定执行或者拒绝
2.路由规则可以自定义,隐藏了原URL地址,使访问更安全,地址更优雅,利于seo优化