帝国cms的tag如果包含空格,默认是去掉空格的,但是英文tag如果去掉了空格,就会变成四不像,下面为解决办法
修改/e/class/connect.php下
搜索$val=str_replace(" ","",$val);,替换为 $val=str_replace("","",$val); 大概在990行
然后再测试,就会发现问题解决了,但是又出现个问题,tag伪静态之后,网址里面的空格变为了+,这样导致打不开,解决办法如下
同样的 修改/e/class/connect.php下,搜索 返回TAGS列表伪静态 ,然后在下面的位置添加两个替换,把+替换为%20。
//返回TAGS列表伪静态
function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){
global $public_r;
$tagname=urlencode($tagname);
if(empty($public_r['rewritetags']))
{
$r['pageurl']=$public_r['newsurl']."e/tags/?tagname=".$tagname;
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagname,0),$public_r['rewritetags']);
$r['pageurl']=str_replace('+','%20',$r['pageurl']); //额外加的,把地址中的+替换为%20
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace('[!--tagname--]',$tagname,$public_r['rewritetags']);
$r['pageurl']=str_replace('+','%20',$r['pageurl']); //额外加的,把地址中的+替换为%20
}
$r['rewrite']=1;
}
return $r;
}
发布者:彬彬笔记,转载请注明出处:https://www.binbinbiji.com/diguocms/2293.html