让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
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
php 获取客户端的真实ip
Nov 30 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
ThinkPHP中session函数详解
Sep 14 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
php中加密解密DES类的简单使用方法示例
Mar 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
laravel安装zend opcache加速器教程
2015/03/02 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vue组件实例解析
2017/01/10 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
Python多线程和队列操作实例
2015/06/21 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
一道SQL面试题
2012/12/31 面试题
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
高一政治教学反思
2014/01/28 职场文书
应届大专生求职信
2014/06/26 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
课外活动实习计划
2015/01/19 职场文书
校车司机安全责任书
2015/05/11 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
Python图片检索之以图搜图
2021/05/31 Python
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
python使用torch随机初始化参数
2022/03/22 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python