程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 讓ThinkPHP支持大小寫url地址訪問的方法

讓ThinkPHP支持大小寫url地址訪問的方法

編輯:PHP綜合

本文實例講述了讓thinkphp支持大小寫url地址訪問的方法。分享給大家供大家參考。具體實現方法如下:

通常ThinkPHP默認是區別大小寫url的,這種也是與linux系統一樣在小寫url是兩個不同的名字,但我們使用windows習慣了對於大小寫都認為一樣的,所以還是要根據用戶習慣來處理問題,下面我們一起來看問題解決方法。

在配置文件中開啟了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(defined('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
這樣問題就搞定了!

希望本文所述對大家的ThinkPHP框架程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved