当前位置:首页 > ThinkPHP > ThinkPHP 新手入门教程(七)之控制器—URL模式讲解

ThinkPHP 新手入门教程(七)之控制器—URL模式讲解

对于Web框架的学习,我们最重要的是了解URL路由是怎样运作的,这是框架分层很重要的一个基础。ThinkPHP框架基于模块和操作来进行访问,使用THinkPHP框架创建的网站都是采用单一入口来执行的,也就是说ThinkPHP框架是通过解析URL参数来执行网站的所有模块和操作的。

ThinkPHP支持四种URL模式

ThinkPHP支持的四种URL模式分别是:普通模式、PATHINFO、REWRITE和兼容模式。它们都是通过设置URL_MODEL参数来定义的。

ThinkPHP URL 普通模式

设置方法:设置URL_MODEL 为0
例子:

1
http://serverName/appName/?m=module&a=action&idnumber=0

这种模式是我们熟悉的url参数的模式,对于大多数使用过web开发的人员来说都不陌生。

ThinkPHP URL PATHINFO模式

PATHINFO模式是ThinkPHP默认的模式。
设置方法:设置URL_MODEL 为1
例子:

1
http://serverName/appName/module/action/idnumber/0/

这种方式有点类似于我们的伪静态写法
或者你也可以这样写

1
http://serverName/appName/module,action,idnumber,0/

上面的url可以这样解释:第一个参数会被解析成模块名称(如果启用了分组的话,则依次往后递推),第二个参数会被解析成操作,后面的参数是显式传递的,而且必须成对出现,例如:

1
http://serverName/appName/module/action/y/2014/m/06/d/23/

在PATH_INFO模式下面,框架会把相关参数转换成GET变量,以及并入REQUEST变量,这样也不妨碍URL里面的GET和REQUEST变量获取。

ThinkPHP URL REWRITE模式

设置方法:设置URL_MODEL 为2

此模式是不需要在URL中写入口文件,并且此模式可以定义.htaccess 文件。其他的和PATHINFO模式功能是一样的,REWRITE模式需要在开启了Apache的URL_REWRITE模块后才能启用

ThinkPHP URL 兼容模式

设置方法:设置URL_MODEL 为3
兼容模式是普通模式和PATHINFO模式的结合,
例子:

1
http://serverName/appName/?s=/module/action/idnumber/0/

根据上方的几种模式,我建议使用PATHINFO模式开发,这种模式符合我们常见的RUL的特点,便于URL的书写,利于于搜索引擎的优化。

  • << C#/.NET 将对象序列化成XML和将XML反序...
  • JS&jQuery实现全球国家、州/省、城市sel... >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/thinkphp-url-mode/

    相关文章 近期热评 最新文章

    • 怎样在WordPress中安装Google Analytics
      就算你积累了多年网站建设的经验,你都不可能一开始就建一个外观,速度,功能以及转化都很完美的网站。你能做的并且也是各个站长正在做的,无非是通过不断的监测来改进...
    • 怎样在WordPress中安装Google Analytics
      就算你积累了多年网站建设的经验,你都不可能一开始就建一个外观,速度,功能以及转化都很完美的网站。你能做的并且也是各个站长正在做的,无非是通过不断的监测来改进...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程