首页 > 代码库 > ThinkPHP 3.2.3(三)架构之URL模式
ThinkPHP 3.2.3(三)架构之URL模式
一、标准URL格式
http://serverName/index.php/模块/控制器/操作
二、URL大小写
在/ThinkPHP/Conf/convention.php文件里有URL大小写的配置选项,默认false表示URL区分大小写,true则表示不区分大小写。
手册说,开启调试模式的情况下,这个参数是false,但我的项目中该参数依然是true。
三、URL模式
ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以通过设置URL_MODEL参数来改变URL模式。
如果整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式;
如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。
例如:在Home/Controller/IndexController.class.php文件里定义一个带参数的方法:
则不同模式的URL写法如下:
URL模式 | URL_MODEL | 写法 |
普通模式 (GET传参) | 0 | 可以在/ThinkPHP/Conf/convention.php文件里设置变量, 默认的变量设置如下: URL写为:http://localhost/?m=home&c=index&a=getName&name=liulu, m参数表示模块,c参数表示控制器,a参数表示操作,后面的表示其他GET参数。 如果将变量改为: 则URL写为:http://localhost/ThinkPHP-3.2.3/?module=home&controller=index&action=getName&name=liulu 如果仍用 http://localhost/ThinkPHP-3.2.3/?m=home&c=index&a=getName,依然可以访问。。。 |
PATHINFO模式 (系统默认) | 1 | http://localhost/ ThinkPHP-3.2.3/ index.php/home/index/getName/name/liulu/ PATHINFO模式依然可以采用普通URL模式的参数方式: http://localhost/ ThinkPHP-3.2.3/ index.php/home/index/getName?name=liulu 可以更改/ThinkPHP/Conf/convention.php文件里的 URL_PATHINFO_DEPR配置: // PATHINFO模式下,各参数之间的分割符号 ‘URL_PATHINFO_DEPR‘ => ‘/‘, 如果“/”改为“-”,URL写为:localhost/ThinkPHP-3.2.3/index.php/home-index-getName-name-liulu或 localhost/ThinkPHP-3.2.3/index.php/home-index-getName?name=liulu |
REWRITE模式 | 2 | 在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。 如果是Apache则需要添加与入口文件同级的.htaccess文件 URL写为: http://localhost/ ThinkPHP-3.2.3 /home/index/getName?name=liulu |
兼容模式 | 3 | 用于不支持PATHINFO的特殊环境。 在/ThinkPHP/Conf/convention.php文件里,兼容模式变量的名称定义默认为s: // 兼容模式PATHINFO获取变量 // 例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR ‘VAR_PATHINFO‘ => ‘s‘, URL写为: http://localhost/ ThinkPHP-3.2.3 /?s=/home/index/getName/name/liulu 配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。 URL写为: http://localhost/ ThinkPHP-3.2.3 /home/index/getName/name/liulu |
ThinkPHP 3.2.3(三)架构之URL模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。