from:http://www.111cn.net/phper/thinkPhp/57748.htmphp
1、在配置文件中开启了thinkphp的大小写识别功能,使连接大小写均可以正常访问:thinkphp
‘URL_CASE_INSENSITIVE’ =>truedom
文件命名都是规范的,可是在模板中使用__URL__获取当前url路径时,却没有正确获得url。url
手册中这样写:spa
这里须要注意一个地方,若是咱们定义了一个UserTypeAction的模块类,那么URL的访问应该是:.net
http://serverName/index.php/user_type/listserver
而不是htm
http://serverName/index.php/usertype/listget
在模板中使用__URL__获得的连接仍是下面那个,并无加上下划线。io
2、解决办法是修改tp的源代码:
在tp的Lib文件夹的Core文件夹下的Dispatcher.class.php文件,找到181行,这里定义了__URL__的地址获取方式:
代码以下 复制代码
$moduleName = defined('MODULE_ALIAS')?MODULE_ALIAS:MODULE_NAME;
if(define(www.111cn.net)d('GROUP_NAME')) {
define('__URL__',!empty($domainModule)?__GROUP__.$depr : __GROUP__.$depr.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName ) );
}else{
define('__URL__',!empty($domainModule)?__APP__.'/' : __APP__.'/'.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName) );
}
把其中的C(‘URL_CASE_INSENSITIVE’) ? strtolower($moduleName) : $moduleName )改为:
代码以下 复制代码
C('URL_CASE_INSENSITIVE') ? parse_name($moduleName,0) : $moduleName
这样就OK了!