让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自动加载的两种实现方法
Jun 21 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 PHP
php自动获取关键字的方法
Jan 06 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
深入理解PHP内核(一)
Nov 10 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
php多文件上传下载示例分享
2014/02/20 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python实现多线程端口扫描
2019/08/31 Python
python hashlib加密实现代码
2019/10/17 Python
python二维键值数组生成转json的例子
2019/12/06 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
学校安全检查制度
2014/01/27 职场文书
初二生物教学反思
2014/02/03 职场文书
离婚起诉状范本
2015/05/19 职场文书
仰望星空观后感
2015/06/10 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Mysql数据库group by原理详解
2022/07/07 MySQL