欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-06-17 16:54:07
...
关于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有效。

AD:真正免费,域名+虚机+企业邮箱=0元