Discuz 帖子内容页外链自动加 nofollow 的方法

当前位置: 首页 » 文章 » Discuz 帖子内容页外链自动加 nofollow 的方法

分类: 文章 670阅读阅读模式

论坛 SEO 必备良品。

如果帖子中过多的外链会分散了该页面的权重,这样是不利于网站排名的。所以网站内页最好是尽量不要链接向外部。

但是在某些情况下我们不得不链接向外部,那么该如何处理呢?其实我们可以给外部链接加上 nofollow 属性,这样有效仿止搜索权重的流失,对 SEO 优化起到一个很好的作用。

下面修改的作用就是,自动给帖子链接添加 nofollow 属性。

以 discuz X3 为例:

1、打开 source/function/function_discuzcode.php 文件,查找 parseurl 函数,修改为下方代码块

  1. function parseurl($url, $text, $scheme) {
  2. global $_G;
  3. if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
  4. $url = $matches[0];
  5. $length = 65;
  6. if(strlen($url) > $length) {
  7. $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
  8. }
  9. $url = nofollow($url);
  10. return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
  11. } else {
  12. $url = substr($url, 1);
  13. if(substr(strtolower($url), 0, 4) == 'www.') {
  14. $url = 'http://'.$url;
  15. }
  16. $url = !$scheme ? $_G['siteurl'].$url : $url;
  17. return '<a href="'.nofollow($url).'" target="_blank">'.$text.'</a>';
  18. }
  19. }

2、在该代码块下方空一行,添加以下代码

  1. function nofollow($url = ''){
  2. $temp = array();
  3. if( ! emptyempty($url))
  4. {
  5. $temp = parse_url($url);
  6. if(isset($temp['host']) && $temp['host'] != $_SERVER['HTTP_HOST'])
  7. {
  8. $url .= '" rel="nofollow"';
  9. }
  10. }
  11. unset($temp);
  12. return $url;
  13. }

 

完毕!

 

相关文章

评论一下

【注意1】:首次评论使用表情将会进入审核状态。
【注意2】:无意义回复、乱打文字内容将会进入审核状态。
【注意3】:涉及辱骂、色情、政治、毒品、赌博内容将会进入审核状态。
【注意】:首次评论使用表情将会进入审核状态。
暂无评论