一、标准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文件里设置变量, 默认的变量设置如下:
m参数表示模块,c参数表示控制器,a参数表示操作,后面的表示其他GET参数。 如果将变量改为:
如果仍用 |
PATHINFO模式 (系统默认) |
1 |
http://localhost/ ThinkPHP-3.2.3/ index.php/home/index/getName/name/liulu/
PATHINFO模式依然可以采用普通URL模式的参数方式: 可以更改/ThinkPHP/Conf/convention.php文件里的 // PATHINFO模式下,各参数之间的分割符号 ‘URL_PATHINFO_DEPR‘ => ‘/‘,
|
REWRITE模式 |
2 |
在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。 如果是Apache则需要添加与入口文件同级的.htaccess文件
|
兼容模式 |
3 |
用于不支持PATHINFO的特殊环境。 在/ThinkPHP/Conf/convention.php文件里,兼容模式变量的名称定义默认为s: // 兼容模式PATHINFO获取变量 // 例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR ‘VAR_PATHINFO‘ => ‘s‘,
配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。
|