您好,登錄后才能下訂單哦!
怎么在ThinkPHP中設置大小寫url地址訪問?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
thinkphp屬于一種免費的開發框架,能夠用于開發前端網頁,最早thinkphp是為了簡化開發而產生的,thinkphp同時也是遵循Apache2協議,最初是從Struts演變過來,也把國外一些好的框架模式進行利用,使用面向對象的開發結構,兼容了很多標簽庫等模式,它能夠更方便和快捷的開發和部署應用,當然不僅僅是企業級應用,任何php應用開發都可以從thinkphp的簡單、兼容和快速的特性中受益。
具體實現方法如下:
通常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中設置大小寫url地址訪問的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。