让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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
如何用php获取文件名后缀
Jun 09 PHP
解析link_mysql的php版
Jun 30 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
PHP http请求超时问题解决方案
Nov 13 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使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
python使用正则表达式提取网页URL的方法
2015/05/26 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
python 贪心算法的实现
2020/09/18 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
顶岗实习接收函
2014/01/09 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
项目合作协议书
2014/04/16 职场文书
《赶海》教学反思
2014/04/20 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
大一新生期末自我评价
2014/09/12 职场文书
办理房产过户的委托书
2014/09/14 职场文书
公司合并协议书范本
2014/09/30 职场文书
《1942》观后感
2015/06/08 职场文书
聘任通知书
2015/09/21 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
十二月早安励志心语大全
2019/12/03 职场文书