thinkphp支持大小寫url地址訪問,不產生下划線


from:http://www.111cn.net/phper/thinkPhp/57748.htm

一、在配置文件中開啟了thinkphp的大小寫識別功能,使鏈接大小寫都可以正常訪問:

‘URL_CASE_INSENSITIVE’ =>true

文件命名都是規范的,但是在模板中使用__URL__獲取當前url路徑時,卻沒有正確得到url。

手冊中這樣寫:

這里需要注意一個地方,如果我們定義了一個UserTypeAction的模塊類,那么URL的訪問應該是:

http://serverName/index.php/user_type/list

而不是

http://serverName/index.php/usertype/list

在模板中使用__URL__得到的鏈接還是下面那個,並沒有加上下划線。

二、解決辦法是修改tp的源代碼:

在tp的Lib文件夾的Core文件夾下的Dispatcher.class.php文件,找到181行,這里定義了__URL__的地址獲取方式:

 代碼如下 復制代碼
$moduleName    =   defined('MODULE_ALIAS')?MODULE_ALIAS:MODULE_NAME;
        if(define(www.111cn.net)d('GROUP_NAME')) {
            define('__URL__',!empty($domainModule)?__GROUP__.$depr : __GROUP__.$depr.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName ) );
        }else{
            define('__URL__',!empty($domainModule)?__APP__.'/' : __APP__.'/'.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName) );
        }
 

把其中的C(‘URL_CASE_INSENSITIVE’) ? strtolower($moduleName) : $moduleName )改成:

 代碼如下 復制代碼
C('URL_CASE_INSENSITIVE') ? parse_name($moduleName,0) : $moduleName
 

這樣就OK了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM