ThinkPHP的URL模式

高手直接忽略!

权当笔记吧。最近比较懒,几乎没怎么写代码,也不咋看文档资源。时不时的又忘记了!

 

ThinkPHP的URL模式有4种。可以在配置文件里设置URL_MODEL的参数来定义普通模式、PATHINFO模式、REWRITE模式以及兼容模式。

一、设置URL_MODEL的参数为0

将采用传统的URL参数模式。例如:http://<serverName>/appName/?m=module&a=action&id=1

普通URL模式和在关闭URL_DISPATCH_ON的情况下效果是一样的,只是普通模式还具有路由功能。如果不需要路由功能,并在使用普通模式的情况下,关闭URL_DISPATCH_ON,效率更高。

 

二、设置URL_MODEL的参数为1

默认情况使用的是PATHINFO的模式。PATHINFO还根据设置包括普通模式和智能模式两种:

普通模式设置URL_PATHINFO_MODEL的参数为1。这个模式下面的URL参数没有顺序,例如:

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

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

这两个模式都是等效的。

智能模式则设置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访问。(但不要使用“.”和“&”符号进行分割,该符号有特殊用途)

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

在PATH_INFO模式下面,会把相关的参数转化为GET变量,以及并入REQUEST变量。不反感URL里面的GET和REQUEST变量获取。

 

三、设置URL_MODEL的参数为2

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

 

四、设置URL_MODEL参数为3

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

并且可以支持参数分隔符号定义,设置URL_PAYHINFO_DEPR的参数为~,下面的URL也有效。

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

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

 

 

 

转载于:https://my.oschina.net/7KG/blog/14789

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值