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 相关文章推荐
第十一节--重载
Nov 16 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
PHP实现变色验证码实例
Jan 06 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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实现删除非站内外部链接实例代码
2014/06/17 PHP
php制作动态随机验证码
2015/02/12 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
puppeteer库入门初探
2019/01/09 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Django-migrate报错问题解决方案
2020/04/21 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
群众路线剖析材料
2014/02/02 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
学徒工职责
2014/03/06 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书