让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之第八天
Oct 09 PHP
提升PHP速度全攻略
Oct 09 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
基于mysql的论坛(6)
2006/10/09 PHP
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
js实现右键菜单功能
2016/11/28 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
python实现按行分割文件
2019/07/22 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
详解python如何引用包package
2020/06/07 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
2014升学宴答谢词
2014/01/26 职场文书
企业领导对照检查材料
2014/08/20 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
优秀高中学生评语
2014/12/30 职场文书
物业公司管理制度
2015/08/05 职场文书
银行服务理念口号
2015/12/25 职场文书
Python Django模型详解
2021/10/05 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python