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

知道91 | ThinkPHP | 2014-06-23 | 阅读:3934

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

ThinkPHP支持四种URL模式

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

ThinkPHP URL 普通模式

设置方法:设置URL_MODEL 为0

例子:

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

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

ThinkPHP URL PATHINFO模式

PATHINFO模式是ThinkPHP默认的模式。

设置方法:设置URL_MODEL 为1

例子:

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

这种方式有点类似于我们的伪静态写法

或者你也可以这样写

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

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

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模式的结合,

例子:

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

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