|
Thinkphp3.1.3在啟用路由的情況下,其分頁地址不是路由的地址,由于thinkphp3.2.1的代碼也沒有修復,很多人都遇到了這一問題,本文采納olcms的修改方法解決這一問題,特別感謝phper jack對此做出的貢獻,具體解決辦法是修改Thinkphp的functions.php的U方法,在287行左右:
if(!empty($vars)) { // 添加參數 foreach ($vars as $var => $val){ if('' !== trim($val)) $url .= $depr . $var . $depr . urlencode($val); }
后面加入以下代碼
/** tp開啟路由之后路由失效問題 分頁類URL組裝*/ //如果開啟路由 if(C('URL_ROUTER_ON')){ foreach (C('URL_ROUTE_RULES') as $zhaolg => $zlig){//遍歷路由 if(strstr('/'.GROUP_NAME.$url,$zlig)){//從網址中找路由規則 $lg = strstr($zhaolg,'/:');//分析規則 帶參數? if($lg){//如果規則帶參數 $tempzlg = str_replace('/:','',$lg);//取參數 //dump($tempzlg); if($tempzlg){ if(C('APP_SUB_DOMAIN_DEPLOY')){ $zlgurl = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url); //url替換為路由規則 }else{ $zlgurl = str_replace($zlig,$zhaolg,$url); //url替換為路由規則 } //注 /s/:c/c/4/p/__PAGE__ //dump($zlgurl); $url = str_replace($lg.'/'.$tempzlg,'',$zlgurl);//url替換路由規則參數 } }else{//分析規則 不帶參數 if(C('APP_SUB_DOMAIN_DEPLOY')){ $url = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url);//url替換為路由規則 }else{ $url = str_replace($zlig,$zhaolg,$url);//url替換為路由規則 } } } } }
至此問題得以解決!
php技術:改寫ThinkPHP的U方法使其路由下分頁正常,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。