让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 相关文章推荐
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
Yii清理缓存的方法
Jan 06 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
laravel学习教程之关联模型
Jul 30 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
浅析php-fpm静态和动态执行方式的比较
Nov 09 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
php插件Xajax使用方法详解
Aug 31 PHP
php处理抢购类功能的高并发请求
Feb 08 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
一个PHP并发访问实例代码
2012/09/06 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
php适配器模式简单应用示例
2019/10/23 PHP
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Django返回HTML文件的实现方法
2020/09/17 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
详解HTML5中的标签
2015/06/19 HTML / CSS
经典c++面试题二
2015/08/14 面试题
优秀演讲稿范文
2013/12/29 职场文书
工资收入证明
2014/10/07 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Python连续赋值需要注意的一些问题
2021/06/03 Python
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
python识别围棋定位棋盘位置
2021/07/26 Python