让ThinkPHP支持大小写url地址访问的方法


Posted in PHP onOctober 31, 2014

本文实例讲述了让thinkphp支持大小写url地址访问的方法。分享给大家供大家参考。具体实现方法如下:

通常ThinkPHP默认是区别大小写url的,这种也是与linux系统一样在小写url是两个不同的名字,但我们使用windows习惯了对于大小写都认为一样的,所以还是要根据用户习惯来处理问题,下面我们一起来看问题解决方法。

在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问:
'URL_CASE_INSENSITIVE' =>true
文件命名都是规范的,但是在模板中使用__URL__获取当前url路径时,却没有正确得到url。
手册中这样写:
这里需要注意一个地方,如果我们定义了一个UserTypeAction的模块类,那么URL的访问应该是:
http://serverName/index.php/user_type/list
而不是
http://serverName/index.php/usertype/list
在模板中使用__URL__得到的链接还是下面那个,并没有加上下划线。
这个问题在网上也有很多人反馈,有个解决办法是修改tp的源代码:
在tp的Lib文件夹的Core文件夹下的Dispatcher.class.php文件,找到181行,这里定义了__URL__的地址获取方式:

$moduleName = defined('MODULE_ALIAS')?MODULE_ALIAS:MODULE_NAME;

if(defined('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

这样问题就搞定了!

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
php whois查询API制作方法
Jun 23 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php截取字符串函数分享
Feb 02 PHP
php计算税后工资的方法
Jul 28 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
PHP6新特性分析
Mar 03 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 #PHP
php使用fopen创建utf8编码文件的方法
Oct 31 #PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 #PHP
PHP页面实现定时跳转的方法
Oct 31 #PHP
Thinkphp多文件上传实现方法
Oct 31 #PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 #PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 #PHP
You might like
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
Javascript typeof 用法
2008/12/28 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
Vue Socket.io源码解读
2018/02/07 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python常用知识梳理(必看篇)
2017/03/23 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
大学生简短的自我评价分享
2014/02/20 职场文书
网络信息安全承诺书
2014/03/26 职场文书
部门年终奖分配方案
2014/05/07 职场文书
2015新年寄语大全
2014/12/08 职场文书
2014年政教处工作总结
2014/12/20 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
解除合同协议书范本
2016/03/21 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
php 原生分页
2021/04/01 PHP
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python