DedeCMS Tags标签提示“系统无此标签,可能已经移除”如何解决方案

梦是一种欲望,想是一种行动。梦想是梦与想的结晶。当心灵趋于平静时,精神便是永恒!把欲望降到最低点,把理性升华到最高点,你会感受到:平安是福,清新是禄,寡欲是寿!

在做完《DedeCMS Tags标签页以及列表分页伪静态实现》之后,余斗发现一个新的问题,就是点击某些标签时,会提示:“系统无此标签,可能已经移除!”。

余斗查询了一下相关资料,原因可能有以下几种,余斗就分情况来给出解决方案:

一、DEDECMS标签中包含“大写字母”

解决方法:

打开网站跟录下的tags.php文件,将代码(大概在第15行):

	
	 $tag = trim($_SERVER['QUERY_STRING']);
	

修改为:

	
	 $tag = strtolower(trim($_SERVER['QUERY_STRING']));
	

二、DEDECMS标签中包含中文

出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.php中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了。

解决方法:

1.把以下函数代码放在$PageNo = 1;下面,大概在第11行:

	
	  function is_utf8($tag)
	{
	if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$tag) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$tag) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$tag) == true)
	{
	return true;
	}
	else 
	{
	return false;
	}
	}
	

2.将代码(大概在第25行):

	
	$tag = FilterSearch(urldecode($tag));
	

修改为:

	
	if(is_utf8($tag)==1) { $tag = iconv("utf-8","gbk",$tag); }
	$tag = urldecode($tag);
	

这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk。这样就完美解决了标签页的编码问题。

本文DedeCMS Tags标签提示“系统无此标签,可能已经移除”如何解决方案到此结束。只有使自己自卑的心灵自信起来,弯曲的身躯才能挺直;只有使自己懦弱的体魄健壮起来,束缚的脚步才能迈开;只有使自己狭隘的心胸开阔起来,短视的眼光才能放远;只有使自己愚昧的头脑聪明起来,愚昧的幻想才能抛弃!小编再次感谢大家对我们的支持!

标签: 无此