zend framework框架中url大小写问题解决方法


Posted in PHP onAugust 19, 2014

有用过Zend Framework框架开发过项目的网友都知道 Zend Framework (ZF) MVC中的Controller和Action名称默认是不支持大小写的,这对于已经习惯了驼峰式代码风格的开发人员来说,显然是难以接受的。还好可以设定前端控制器FrontController的useCaseSensitiveActions参数来让Zend Framework支持大小写的Controller与Action命名,代码如下:

$front = Zend_Controller_Front::getInstance();
$front->setParam('useCaseSensitiveActions',true);

现在如果在AppController中定义了一个Action叫做 CoderBolgAction();而要访问这个Action时,URL要写 http://localhost/app/coder-bolg/,注意Action的第二个大写字母前加上了'-'。这个倒还没事,至少问题解决了,而且加上'-'也不影响SEO,甚至比驼峰式对搜索引擎更为友好。但是又出现了一个让人更无法容忍的问题:URL也区别大小写了。就是说如果用户在URL中把Action的某个字母输入成了大写就无法显示。晕死……,不过这个也比较好解决。在路由前把ModuleName 、ControllerName 、ActionName 都修改成小写就解决了。我在Zend_Controller_Action的子类(在我们的项目中让这个子类继承Zend_Controller_Action,我们的Controller再继承这个类)的init()方法中加上这三行:
$this->_request->setModuleName( strtolower( $this->_request->getModuleName() ) );
$this->_request->setControllerName(strtolower($this->_request->getControllerName()));
$this->_request->setActionName( strtolower( $this->_request->getActionName() ) );

这样就解决了URL大小写敏感的问题。
PHP 相关文章推荐
用PHP实现维护文件代码
Jun 14 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
深入理解PHP中的global
Aug 19 #PHP
PHP Session机制简介及用法
Aug 19 #PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 #PHP
PHP 导出Excel示例分享
Aug 18 #PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 #PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 #PHP
PHP实现取得HTTP请求的原文
Aug 18 #PHP
You might like
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
python算法学习之计数排序实例
2013/12/18 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Python读写配置文件的方法
2015/06/03 Python
Python数据类型详解(二)列表
2016/05/08 Python
利用python批量检查网站的可用性
2016/09/09 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
python获取栅格点和面值的实现
2020/03/10 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
房地产员工找工作的自我评价
2013/11/15 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
运动会主持词大全
2015/07/02 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
P站美图推荐——变身女主角特辑
2022/03/20 日漫