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 02 PHP
PHP 处理图片的类实现代码
Oct 23 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
PHP类和对象相关系统函数与运算符小结
Sep 28 PHP
PHP实现用户登录的案例代码
May 10 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 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实现的Captcha验证码类实例
2014/09/22 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
Python使用剪切板的方法
2017/06/06 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
服装设计师求职信
2014/06/04 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript