学习笔记

精准传达 • 价值共享

洞悉互联网前沿资讯,探寻网站营销规律

查看其它板块

织梦利用php正则让文章的外链自动加nofollow

作者:狐灵科技 | 2020-03-10 19:41 |点击:

  “nofollow” 标签是Google、Yahoo和微软公司前几年一起提出的一个标签,链接加上这个标签后就不会被计算权值,搜索引擎支持nofollow属性,在很大程度上抑制博客或论坛的垃圾留言。对站长来说是一件大好事。

  nofollow的作用

  nofollow主要有三个作用:

  1.防止不可信的内容,最常见的是博客上的垃圾留言与评论中为了获取外链的垃圾链接,为了防止页面指向一些拉圾页面和站点。

  2.付费链接:为了防止付费链接影响Google的搜索结果排名,Google建议使用nofollow属性。

  3.引导爬虫抓取有效的页面:避免爬虫抓取一些无意义的页面,影响爬虫抓取的效率。
 

  有时候需要对文章进行自动处理nofollow,防止权重流失,对于做网站优化seo的来说很重要。

  $host为不需要进行处理的站点域名,否则全部自动加上nofollow。

  首先正则出a标签和href,然后进行每一层级判断处理。

  如果是外链,而且没有nofollow就自动加上。

 
  1. /**
    * 自动处理外链加上rel="nofollow"
    */
     
    function webOutUrlDispose($html)
     
    {
     
    $host = ['www.hulingweb.cn', $_SERVER['HTTP_HOST']];//站点host
     
    $pattern = '/<a href="([^"]*)"[^>]*>.*<\/a>/';
     
    preg_match_all($pattern, $html, $matches);
     
    for ($i = 0; $i < count($matches[0]); $i++) {
     
    if (!strstr($matches[1][$i], '://')) {
     
    continue;
     
    }
     
    $array = parse_url($matches[1][$i]);
     
    if (in_array($array['host'], $host)) {
     
    continue;
     
    }
     
    if (!strstr($matches[0][$i], 'rel=')) {
     
    $yuan = $matches[0][$i];
     
    $matches[0][$i] = str_replace('<a', '<a rel="nofollow"', $matches[0][$i]);
     
    $html = str_replace($yuan, $matches[0][$i], $html);
     
    }
     
    }
     
    return $html;
     
    }

  dedecms使用的话,需要在/include/extend.func.php下新增如上方法

  模板调用:

  {dede:field.body function='webOutUrlDispose(@me)'/}

以上方法没有测试,各位请自行测试,织梦利用php正则让文章的外链自动加nofollow


如没特殊注明,文章均为狐灵科技原创,转载请注明  https://www.hulingweb.cn/qxpp/xuexibiji/1015.html
多一份免费策划方案,总有益处。

请直接添加技术总监微信联系咨询

网站设计 品牌营销

多一份参考,总有益处

联系狐灵科技,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:023-68168040 / 大客户专线:15523356218