关闭

ThinkPHP(3)——URL模式

标签: thinkphp
279人阅读 评论(0) 收藏 举报
分类:

什么是URL模式?

thinkhp是单入口框架,所有的请求都要通过入口文件,那么如何通过解析访问地址来调用对应的控制器中的方法呢?

我们常见的url可能有多种形式:

  1. http://localhost/index.php?m=index&a=index
  2. http://localhost/index.php/Index/user

显然第二种会比第一种美观一些。因此,thinkphp提供了四种URL模式,能够解析不同形式的url,从而调用相应的控制器中的方法

通过查看配置文件convention.php,我们可以知道thinkphp默认的url模式是PATHINFO模式

这里写图片描述

U方法

假设我们现在在Index控制器中添加了一个user方法,那么在当前url模式下,我们访问这个方法的url是什么样的呢?我们可以通过使用U方法来获取。

这里写图片描述

得到结果:

这里写图片描述

然后我们输入上图所示的地址,就能成功访问Index控制器中的user方法,并且传入参数id=1

U方法具体参数如下:

这里写图片描述

提示:本人在视频和其他资料中看到的U方法参数和上述的U方法参数有些区别,个人猜想应该是由于版本更新,这个方法也做了些改动。

PATHINFO模式

例如:http://localhost/index.php/home/user/login/var/value/

PATHINFO地址的前三个参数分别表示模块/控制器/操作。

不过,PATHINFO模式下面,依然可以采用普通URL模式的参数方式,例如:
http://localhost/index.php/home/user/login?var=value 依然是有效的

普通模式

普通模式也就是传统的GET传参方式来指定当前访问的模块和操作,例如:

http://localhost/?m=home&c=user&a=login&var=value

REWRITE模式

例如:http://localhost/home/user/login/var/value ,仔细看就会发现,该模式下的url中,省去了index.php,看过去更加的顺眼了。

值得一提的是,如果要使用该模式,不仅仅要修改配置文件,还需在入口文件同级目录下添加.htaccess文件,内容如下:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

还需将apache服务器开启重写模块

打开apache配置文件,搜索rewrite.so,将最前面的#号去掉,然后重启服务。

这里写图片描述

兼容模式

当服务器环境不支持pathinfo模式时,可以使用兼容模式。

例如:http://localhost/?s=/home/user/login/var/value

和REWRITE模式一样,需要有.htaccess文件,内容如下:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>

.htaccess解析

内容 解析
<IfModule mod_rewrite.c> 如果重写模块加载
RewriteEngine on 开启重写引擎
RewriteCond %{REQUEST_FILENAME} !-d 如果请求的资源不是目录,才进行重写
RewriteCond %{REQUEST_FILENAME} !-f 如果请求的资源不是文件,才进行重写
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L] 重写的规则,使用正则(满足该条件才进行重写)
</IfModule> 结束
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:177096次
    • 积分:4017
    • 等级:
    • 排名:第7785名
    • 原创:226篇
    • 转载:2篇
    • 译文:0篇
    • 评论:60条
    文章分类
    最新评论