让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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
php 定界符格式引起的错误
May 24 PHP
PHP中如何定义和使用常量
Feb 28 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP的博客ping服务代码
2012/02/04 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php利用header函数下载各种文件
2016/08/24 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
javascript中正则表达式语法详解
2020/08/07 Javascript
wxPython 入门教程
2008/10/07 Python
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
在python中实现对list求和及求积
2018/11/14 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
自我鉴定模板
2013/10/29 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js