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中上传大体积文件时需要的设置
Oct 09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 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
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
php 获取完整url地址
2008/12/20 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
JS调试必备的5个debug技巧
2014/03/07 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
wxPython事件驱动实例详解
2014/09/28 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
韩国现代百货官网:Hmall
2018/03/21 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
工程资料员岗位职责
2014/03/10 职场文书
协议书范本
2014/04/23 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
淘宝客服工作职责
2014/07/11 职场文书
简单租房协议书
2014/10/21 职场文书
2014年司法局工作总结
2014/12/11 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
保送生自荐信
2015/03/06 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL