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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
header()函数使用说明
Nov 23 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
php经典趣味算法实例代码
Jan 21 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 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实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
php实现微信发红包
2015/12/05 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
简单上手Python中装饰器的使用
2015/07/12 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
应届生幼儿园求职信
2013/11/12 职场文书
个人自我剖析材料
2014/02/07 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
就职演讲稿范文
2014/05/19 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
业务员管理制度范本
2015/08/06 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
python办公自动化之excel的操作
2021/05/23 Python
python实现MD5进行文件去重的示例代码
2021/07/09 Python
Python实现滑雪小游戏
2021/09/25 Python