让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 5.0对象模型深度探索之对象复制
Mar 27 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
浅析php单例模式
Nov 25 PHP
ThinkPHP模板输出display用法分析
Nov 26 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
详解php实现页面静态化原理
Jun 21 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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学习之PHP表达式
2006/10/09 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP开发注意事项总结
2015/02/04 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python帮你识破双11的套路
2019/11/11 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
python实现图片转字符画的完整代码
2021/02/21 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
日本小田急百货官网:Odakyu
2018/07/19 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
参观考察邀请函范文
2014/01/29 职场文书
2014植树节活动总结
2014/03/11 职场文书
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS