让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 新手入门教程
Aug 03 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
php批量修改表结构实例
May 24 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP大文件切割上传功能实例分析
Jul 01 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并发对MYSQL造成压力的解决方法
2013/02/21 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
三下乡活动方案
2014/01/31 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
大学生军训感想
2014/02/16 职场文书
婚前协议书范本两则
2014/10/16 职场文书
市场部岗位职责
2015/02/12 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
百年孤独读书笔记
2015/06/29 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS