帝国cms 英文tag包含空格不显示的解决办法,帝国cms网址中出现+导致打不开解决办法

帝国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/%e5%b8%9d%e5%9b%bdcms/2293.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

蜀ICP备14017386号-13