让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 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 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单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
js 判断 enter 事件
2009/02/12 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
社区先进事迹材料
2014/05/19 职场文书
班级文化标语
2014/06/23 职场文书
婚庆主持词大全
2015/06/30 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android