thinkphp支持大小写url地址访问,不产生下划线

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了!

相关文章
相关标签/搜索