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

2019-08-1707:22:00网站建设与开发Comments2,806 views字数 1626阅读模式

dedecms5.7sp1给朋友做了一个站,他想要tag的地址以中文的方式展示文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

比如http://www.itbyc.com/tags?php/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E4%BC%98%E5%8C%96/
显示为:http://www.itbyc.com/tags/织梦系统/
于是给他做了伪静态,然后伪静态时,我把include/taglib/tag.lib.php里边的的$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
改成了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

 $row['link'] = $cfg_cmsurl."/tags/".($row['keyword'])."/";
把urlencode也去掉了,刚开始在本地是可以的,做完了把网站搬到服务器时,(他的服务器是Linux(centos)的),发现dedecms tag有问题,老是提示:
系统无此标签,可能已经移除!

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

试了好多方法还是不行!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

但英文的又可以,我想肯定是编码有问题,上网查了下,果然如此,然后用了以下的方法完美解决了问题!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

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

先在根目录下找到tags.php打开后将以下代码注释掉:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

$tag = trim($_SERVER['QUERY_STRING']);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

 找到上面一行,把他注释了,然后添加这行
$tag = strtolower(trim($_SERVER['QUERY_STRING']));
这句的意思是判断UTF8编码的字符,如果是UTF8则转换为GBK!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

此时你再刷新,如果还不行,那么重来!把上面添加的删了,取消注释(不同的服务器可能出现的情况不一样,所以有两种解决办法)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

第一步、打开tags.php,在$tag = trim($_SERVER['QUERY_STRING']);下面添加下面的代码,切记是下面,否则不行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

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));添加下面一句,切记是上面,否则失败文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

if(is_utf8($tag)==1) { $tag = iconv("utf-8","gbk",$tag); }
这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

如果你现在保存刷新的话,中文是可以了,但是部分tag还是会出错的,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

比如:JvavScript  SEO  等等这样子的(区分大小写),所以还差最后一步文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

最后一步、把$tag = FilterSearch(urldecode($tag));注释了,添加下面的这行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html

$tag = urldecode($tag);
也就是去掉 FilterSearch();此时、dedecms提示 系统无此标签,可能已经移除!的问题就解决了。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/15383.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/15383.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定