最新消息:欢迎加入小松的QQ群一起讨论一起学习,服务器快到期了,新买了台服务器,最近要做服务器迁移

学习thinkphp你可能会忽略的知识点——url路由

开源框架 1405浏览 0评论

URL路由就是允许你在一定规则下定制你需要的URL,以达到简化URL ,有益于搜索引擎收录的。了解过seo的人都知道,url怎么设计更能利于搜索引擎的排名,所以url路径是很重要的。
这里我讲两点,
1。静态地址比动态地址更加友好,但是目前搜索引擎都说动态地址识别的很好,可能有些人还会问题,什么是动态地址,其实很好说明,链接中带“?”这就是动态地址
2.目录程序不要超过3层,超过之后,搜索引擎就不收录或者说收录很差
THINKPHP是一个MVC框架,简称TP,使用PATHINFO解析出分组名,模块名,方法名,以及参数。
PATHINFO:就是 http://www.phpsong.com/index.php/Home/Index/index/a/1/b/2?c=3 中的红色部分,注意,c=3并不是pathinfo的一部分,它是一个query参数。PATHINFO指的是URL中的路径实际上不存在的时候,apache或nginx等通过一定的手段将这个不存在路径保存到环境变量 $_SERVER[‘PATH_INFO’]中,也可以将它转化为$_GET[‘s’]参数,TP也可以识别。
也就是说当你访问THINKPHP项目的时候,你实际上访问的只是入口文件index.php ,不管你后面有多长的路径,都是实际不存在的,转化成PATHINFO或$_GET[‘s’]了而已。

那么THINKPHP就是根据PATHINFO,从中提取出 分组名,模块名,方法名,以及将剩余的部分转化为$_GET变量,比如TP从PATHINFO字符串中提取’Home’字符串,将其保存到$_GET[‘g’] ,$_GET[‘m’]=’Index’ ;$_GET[‘a’]=’index’ ;$_GET[‘a’]=1 ;$_GET[‘b’]=2。不信你可以随便在某个模块方法下 dump(‘$_GET’)看看。

之后Tp就是根据$_GET[‘g’],$_GET[‘m’],$_GET[‘a’]来加载实例化对应分组下的模块类,并执行对应的方法。

关于URL详细的解析流程,请看 ThinkPHP/Lib/Core/Dispatcher.class.php 核心类。
附上ThinkPHP框架系统运行流程图片,帮助大家理解

ThinkPHP框架系统运行流程

QQ交流群:136351212

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» 学习thinkphp你可能会忽略的知识点——url路由
本文链接地址:https://www.phpsong.com/70.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!