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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
php 多个submit提交表单 处理方法
Jul 07 PHP
PHP similar_text 字符串的相似性比较函数
May 26 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
js模糊查询实例分享
2016/12/26 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
python django集成cas验证系统
2014/07/14 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Python中str.join()简单用法示例
2018/03/20 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Django分组聚合查询实例分享
2020/04/29 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
初中政治教学反思
2014/01/17 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
Python制作动态字符画的源码
2021/08/04 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS