zend framework框架中url大小寫問題解決方法
有用過Zend Framework框架開發(fā)過項目的網(wǎng)友都知道 Zend Framework (ZF) MVC中的Controller和Action名稱默認是不支持大小寫的,這對于已經(jīng)習(xí)慣了駝峰式代碼風(fēng)格的開發(fā)人員來說,顯然是難以接受的。還好可以設(shè)定前端控制器FrontController的useCaseSensitiveActions參數(shù)來讓Zend Framework支持大小寫的Controller與Action命名,代碼如下:
$front = Zend_Controller_Front::getInstance();
$front->setParam('useCaseSensitiveActions',true);
現(xiàn)在如果在AppController中定義了一個Action叫做 CoderBolgAction();而要訪問這個Action時,URL要寫 http://localhost/app/coder-bolg/,注意Action的第二個大寫字母前加上了'-'。這個倒還沒事,至少問題解決了,而且加上'-'也不影響SEO,甚至比駝峰式對搜索引擎更為友好。但是又出現(xiàn)了一個讓人更無法容忍的問題:URL也區(qū)別大小寫了。就是說如果用戶在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大小寫敏感的問題。
相關(guān)文章
IIS下配置頁面重寫(配合插件url-rewrite2去除頁面后綴名)的實現(xiàn)方法
這篇文章主要介紹了IIS下配置頁面重寫(配合插件url-rewrite2去除頁面后綴名)的實現(xiàn)方法,需要的朋友可以參考下2017-10-10ThinkPHP中類的構(gòu)造函數(shù)_construct()與_initialize()的區(qū)別詳解
這篇文章主要介紹了ThinkPHP中類的構(gòu)造函數(shù)_construct()與_initialize()的區(qū)別,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03php+redis實現(xiàn)多臺服務(wù)器內(nèi)網(wǎng)存儲session并讀取示例
這篇文章主要介紹了php+redis實現(xiàn)多臺服務(wù)器內(nèi)網(wǎng)存儲session并讀取示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01php curl請求接口并獲取數(shù)據(jù)的示例代碼
本篇文章主要介紹了php curl請求接口并獲取數(shù)據(jù)的示例代碼,非常具有實用價值,需要的朋友可以參考下2017-08-08ThinkPHP5框架實現(xiàn)簡單的批量查詢功能示例
這篇文章主要介紹了ThinkPHP5框架實現(xiàn)簡單的批量查詢功能,結(jié)合實例形式分析了thinkPHP5框架使用原生SQL語句查詢、批量查詢、快速查詢、聚合查詢等操作實現(xiàn)技巧,需要的朋友可以參考下2018-06-06