怎么给dicuz论坛所有帖子的站外链接自动添加nofollow?

2024-11-19 10:42:27 849阅读

所谓nofollow标签,就是让搜索引擎不抓取相应的页面。如果网站中存在大量的外部链接,或者是不重要的页面,就会降低网站的权重,添加nofollow标签就成为了非常重要的seo优化手段了。个人觉得最常用的nofollow标签就是rel="nofollow"和rel="external nofollow",其实两者的意思是一样的,不过后者更规范些。

nofollow的添加方式有两种:1.用于meta元标签:<meta name="robots" content="nofollow" />,告诉爬虫该页面上所有链接都无需追踪。2.用于a标签:<a href="login.aspx" rel="nofollow">登录</a>,告诉爬虫该页面无需追踪。

像wordpress博客评论上的站外链接,一般都添加了nofollow标签。这前我的一个网赚博客,里面的网赚项目因为有太多的站外链接,我利用插件的方式直接给全站站外链接加上了nofollow标签(如果你也想给自己的wordpress博客加上nofollow,大家可以去看看这篇文章,wordpress网站必备的六大常用wordpress插件)。同样,nofollow标签对于discuz论坛也相当重要,今天我尝试给我的一个论坛所有帖子的站外链接添加了nofollow标签,感觉效果还不错。 

怎么给dicuz论坛所有帖子的站外链接自动添加nofollow?这里介绍的主要是以代码的形式操作的,其实discuz应用中心也有相应的插件,但个人觉得还是代码的比较好用。我自己测试了一下,如果是帖子内部有外部链接,系统会自动添加nofollow标签,如果是其他地方有外部链接,像友情链接、评论链接等,系统就不会添加nofollow标签,大家放心使用。添加完后,如下图,是以rel=nofollow的形式添加的。怎么给dicuz论坛所有帖子的站外链接自动添加nofollow?具体的操作方法如下:

1、打开目录source/function/function_discuzcode.php文件,查找parseurl函数,对照以下代码进行修改: function parseurl($url, $text, $scheme) { global $_G; if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) { $url = $matches[0]; $length = 65; if(strlen($url) > $length) { $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3)); } $url = nofollow($url); return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>'; } else { $url = substr($url, 1); if(substr(strtolower($url), 0, 4) == 'www.') { $url = 'http://'.$url; } $url = !$scheme ? $_G['siteurl'].$url : $url; return '<a href="'.nofollow($url).'" target="_blank">'.$text.'</a>'; } } 2.在parseurl函数后面新增nofollow函数,代码如下: function nofollow($url = '') { $temp = array(); if( ! empty($url)) { $temp = parse_url($url); if(isset($temp['host']) && $temp['host'] != $_SERVER['HTTP_HOST']) { $url .= '" rel="nofollow"'; } } unset($temp); return $url; }

注意上面的两段代码是需要同时修改的,我个人是直接把上面两段代码直接替换掉原来的代码的。大家在操作之前最好做好备份,避免程序错乱的现象。我个人使用的是discuzX3,至于其他的版本,大家自测吧。另外我发现很多discuz论坛都没有添加nofollow标签的,即使是一些非常牛的论坛。大家根据自身的需求来设定吧。

推荐阅读:
wordpress网站首页调用discuz论坛最新文章的方法
个人制作或修改wordpress程序模板常使用的标签

文章版权声明:除非注明,否则均为赵连奎博客原创文章,转载或复制请以超链接形式并注明出处。