thinkphp支持大小写url地址访问,不产生下划线的方法
发布于 2015-04-11 16:58:51 | 1104 次阅读 | 评论: 1 | 来源: 网友投递
ThinkPHP开源PHP框架ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP可以支持windows/Unix/Liunx等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库
一、在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问:
‘URL_CASE_INSENSITIVE’ =>true
文件命名都是规范的,但是在模板中使用__URL__获取当前url路径时,却没有正确得到url。
手册中这样写:
这里需要注意一个地方,如果我们定义了一个UserTypeAction的模块类,那么URL的访问应该是:
而不是
在模板中使用__URL__得到的链接还是下面那个,并没有加上下划线。
二、解决办法是修改tp的源代码:
在tp的Lib文件夹的Core文件夹下的Dispatcher.class.php文件,找到181行,这里定义了__URL__的地址获取方式:
$moduleName = defined(‘MODULE_ALIAS‘)?MODULE_ALIAS:MODULE_NAME;
if(define(www.domain.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了!
相关阅读:
thinkphp支持大小写url地址访问,不产生下划线的方法
ThinkPHP支持大小写url地址访问的方法
ThinkPHP中URL路径访问与模块控制器之间的关系
ThinkPHP让../Public在模板不解析(直接输出)的方法
ThinkPHP实现非标准名称数据表快速创建模型的方法
ThinkPHP访问不存在的模块跳转到404页面的方法
thinkphp四种url访问方式讲解
ThinkPHP使用UTFWry ip地址库进行IP定位代码
thinkPHP显示不出验证码的原因与解决方法分析
thinkPHP显示不出验证码的原因与解决方法分析
thinkPHP js文件中U方法不被解析问题的解决方法
THinkPHP获取客户端IP与IP地址查询的方法