关于U方法的 根据路由配置自动更新地址

浏览:1218 发布日期:2015/01/22 分类:系统代码 关键字: U方法 路由
关于U方法的 根据路由配置自动更新地址
网上无意中看到的。不知道火星没
修改Common\functions.phpif(!empty($vars)) { // 添加参数
    foreach ($vars as $var => $val){
        if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode($val);
}
后面加入以下代码:(3.2版本把GROUP_NAME换成MODULE_NAME)/*
* tp开启路由之后下一页路由失效问题 分页类URL组装
* modify author :赵利刚 王荣
* modify time:2014.3.5
*/
//如果开启路由
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替换为路由规则 
                }                  
 
            }
        }
    }
}
进行如上修改后,U方法不用再根据路由规则手动进行修改。这样可以方便路由规则更新时,模板文件不用进行修改。
经本人测试,nginx下无效,apache有效。
评论( 相关
后面还有条评论,点击查看>>