我们在上面的执行过程里面看到的URL是默认情况下,其实ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。

一、普通模式 :设置URL_MODEL 为0

采用传统的URL参数模式

http://<serverName>/appName/?m=module&a=action&id=1

普通URL模式和在关闭URL_DISPATCH_ON的情况下面的效果是一样的,只是普通URL模式还具有路由功能。如果你并不需要使用路由功能,而且还在使用普通模式的话,建议直接关闭URL_DISPATCH_ON,效率会更高。

二、PATHINFO模式 :设置URL_MODEL 为1

默认情况使用PATHINFO模式,ThinkPHP内置强大的PATHINFO支持,提供灵活和友好URL支持。PATHINFO模式根据不同的设置还包括普通模式和智能模式两种:

普通模式 设置URL_PATHINFO_MODEL参数为1

该模式下面URL参数没有顺序,例如

http://<serverName>/appName/m/module/a/action/id/1

http://<serverName>/appName/a/action/id/1/m/module

以上URL等效

智能模式 设置URL_PATHINFO_MODEL参数为2 (系统默认的模式)

自动识别模块和操作,例如

http://<serverName>/appName/module/action/id/1/  或者

http://<serverName>/appName/module,action,id,1/

在智能模式下面,第一个参数会被解析成模块名称(或者路由名称,下面会有描述),第二个参数会被解析成操作(在第一个参数不是路由名称的前提下),后面的参数是显式传递的,而且必须成对出现,例如:

http://<serverName>/appName/module/action/year/2008/month/09/day/21/

其中参数之间的分割符号由URL_PATHINFO_DEPR参数设置,默认为”/”,例如我们设置URL_PATHINFO_DEPR为“-”的话,就可以使用下面的URL访问

http://<serverName>/appName/module-action-id-1/

注意不要使用”:” 和”&”符号进行分割,该符号有特殊用途。

略加修改,就可以展示出富有诗意的URL,呵呵~

如果想要简化URL的形式可以通过路由功能(后面会有描述)以及空模块和空操作。

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

三、REWRITE模式: 设置URL_MODEL 为2

该URL模式和PATHINFO模式功能一样,除了可以不需要在URL里面写入口文件,和可以定义.htaccess 文件外。在开启了Apache的URL_REWRITE模块后,就可以启用REWRITE模式了,具体参考下面的URL重写部分。

四、兼容模式: 设置URL_MODEL 为3

兼容模式是普通模式和PATHINFO模式的结合,并且可以让应用在需要的时候直接切换到PATHINFO模式而不需要更改模板和程序。兼容模式URL可以支持任何的运行环境。

兼容模式的效果是:

http://<serverName>/appName/?s=/module/action/id/1/

并且也可以支持参数分割符号的定义,例如在URL_PATHINFO_DEPR为~的情况下,下面的URL有效:

http://<serverName>/appName/?s=module~action~id~1

其实是利用了VAR_PATHINFO参数,用普通模式的实现模拟了PATHINFO的模式。但是兼容模式并不需要自己传s变量,而是由系统自动完成URL部分。正是由于这个特性,兼容模式可以和PATHINFO模式之间直接切换,而不需更改模板文件里面的URL地址连接。

某些服务器环境不能良好的支持PATHINFO,或者需要进行额外的配置才可以支持,如果你确认你的服务器环境不支持PATHINFO,可以选择普通模式或者兼容模式URL运行。

转载于:https://www.cnblogs.com/yuedongwei/archive/2012/12/24/4145424.html

thinkphp的四种控制器URL访问方式相关推荐

  1. 常用的四种免费证书申请方式

    免费申请证书的四种常用方式 1. Let's Encrypt 申请教程 2.Cloudflare 申请教程 3.FreeSSL 申请教程 4. 阿里云(云厂商提供)免费证书 申请教程 1. Let's ...

  2. Unity—AssetBundle的打包及四种加载资源方式

    AssetBundle打包:脚本放在Editor文件夹内 具体代码如下: using UnityEditor; using System.IO;public class CreateAssetBund ...

  3. post 表单中常见的四种表单请求方式

    //post 表单中常见的四种表单请求方式 typedef enum {     postformURLEncoded,                 /*对应Content-Type: appli ...

  4. java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...

  5. 微信小程序四种父子相互传值方式

    微信小程序四种父子相互传值方式 1. 绑定自定义属性(父传子),触发自定义方法 (子传父) 原生微信小程序+uni-app都可以实现 父组件: <template><view cla ...

  6. jQuery中的四种事件监听方式

    jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前,先来声明一个例子 ...

  7. thinkphp四种url访问方式详解

    url的4种访问方式   1.PATHINFO 模式 --重点 在后面使用非常多,如果想传多个参数可以使用键1/值1/键2/值2方法 代码如下: http://域名/项目名/入口文件/模块名/方法名/ ...

  8. TP中的四种url访问方式

    什么是PATHINFO:就是http://localhost/index.php/Home/Index/index/a/1/b/2?c=3中的红色部分, 注意c=3并不是pathinfo的一部分,它是 ...

  9. 四种xml的解析方式

    这篇文章是我上网找资料,加上自己总结了一些而得 资料来源: http://www.cnblogs.com/allenzheng/archive/2012/12/01/2797196.html http ...

  10. jS四种函数的调用方式

    6- js 函数的四种调用方式 2016年11月04日 13:41:54 阅读数:7559 函数的四种调用方式 函数有下列调用模式 函数调用模式 方法调用模式 构造器模式 上下文模式 函数调用 模式 ...

最新文章

  1. C语言解决汉诺塔问题
  2. idea 引入oracle驱动并打包_IDEA下从零开始搭建SpringBoot工程
  3. mybatis报错 Specified class is an interface
  4. AI小编问世!阿里智能写手核心技术首次公开!
  5. 学校计算机机房台账,机房工作
  6. 从网络营销辞职转行软件测试,100天的心酸拿到9K,过程都是自己在苦撑,只因我...
  7. Hive查询各自区组的money排名前十的账号
  8. codebook实现源码
  9. IDEA 2022 CPU占用100%问题解决
  10. PCB多层板设计总结-层的分布设置
  11. 从Docker镜像创建Singularity镜像(SIF文件)
  12. 电脑唯独搜不到自己家wifi,怎么办?
  13. ACCV2020国际细粒度网络图像识别亚军方案总结
  14. idea新建module无法push到GitHub,没有Git选项
  15. 公众号回调,突破每月只能修改三次的限制
  16. Android练手小项目--仿72g赚吧App
  17. 2021域名过期会引发哪些问题?说说常见弊端
  18. Hexo博客使用腾讯云CDN加速及优化
  19. 多台计算机共享内存_共享内存多处理器和指令执行| 计算机架构
  20. 使用python发送邮件(新浪)

热门文章

  1. opencv 之 icvCreateHidHaarClassifierCascade 分类器信息初始化函数部分详细代码注释。...
  2. 20个开发人员非常有用的Java功能代码(一)
  3. 深度学习:NLP之词嵌入(Word Embedding)
  4. CF651A Joysticks
  5. shell编程四剑客之 grep
  6. head 查看文件前n行
  7. 如何优化及安全设置Linux系统
  8. oracle虚拟机磁盘共享,在虚拟机上VM 添加一块共享磁盘方法 支持Oracle 10g RAC
  9. python怎么画小海龟_python画图之“小海龟”turtle
  10. 鲸鱼优化算法_鲸鱼优化算法:一种群体智能最优化方法