欢迎来到素材无忧网,按 + 收藏我们
登录 注册 退出 找回密码

DedeCMS 5.7提示“系统无此标签,可能已经移除”的解决方法

时间: 2020-09-15 15:33 阅读: 作者:素材无忧网

前几天 用dedecms5.7sp1给朋友做了一个站,他想要tag的地址以中文的方式展示

如: http://tem.xxx.com/tags/免费版/

于是给他做了伪静态,然后伪静态时,我把include/taglib/tag.lib.php里边的的

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";

改成了

?$row['link'] = $cfg_cmsurl."/tags/".($row['keyword'])."/";

把urlencode也去掉了,刚开始在本地是可以的,做完了把网站搬到服务器时,(他的服务器是Linux(centos)的),发现dedecms tag有问题,老是提示:

系统无此标签,可能已经移除!

你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>

但英文的又可以,我想肯定是编码有问题,上网查了下,果然如此,然后用了以下的方法完美解决了问题!

解决dedecms 中文tag  系统无此标签,可能已经移除! 方法如下:

先在根目录下找到tags.php打开后将以下代码注释掉:

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

 找到上面一行,把他注释了,然后添加这行$tag = strtolower(trim($_SERVER['QUERY_STRING']));这句的意思是判断UTF8编码的字符,如果是UTF8则转换为GBK!此时你再刷新,如果还不行,那么重来!把上面添加的删了,取消注释(不同的服务器可能出现的情况不一样,所以有两种解决办法) 

第一步、打开tags.php,在$tag = trim($_SERVER['QUERY_STRING']);下面添加下面的代码,切记是下面,否则不行

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; 
} 
}

第二步、找到

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

上面添加

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

这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk!如果你现在保存刷新的话,中文是可以了,但是部分tag还是会出错的,比如:JvavScript  SEO  等等这样子的(区分大小写),所以还差最后一步最后一步、把$tag = FilterSearch(urldecode($tag));注释了,添加下面的这行

$tag = urldecode($tag);也就是去掉 FilterSearch();此时、dedecms提示 系统无此标签,可能已经移除!的问题就解决了,还有不懂的可以在下面留言,我会及时的给你们答复!

版权声明: 本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

转载请注明: DedeCMS 5.7提示“系统无此标签,可能已经移除”的解决方法

模板推荐