当使用 rel="nofollow" 设置所有外部链接时,如何手动将 rel="follow" 添加到特定域?

How can I add rel="follow" to specific domains manually when setting all external links with rel="nofollow"?

我正在建立一个社区,例如社交网络或任何您称之为的社区。我为所有外部链接设置了一个代码,使它们成为不被关注的链接。

现在,我想编写一些代码,允许我从特定域中删除 nofollow att 并添加 follow att,因此我可以选择在 .php 中手动添加质量域以影响所有根这些特定域下的文件夹和 sub-domains。

重点是不要将所有域名都视为垃圾邮件或不推荐给搜索引擎,相反,我只想将社区用户使用的优质域名推荐给搜索引擎。

项目:http://www.jumzler.com/

完整说明、资源或仅标题即可。

谢谢。

我已经使用 jQuery 设置了客户端脚本,我认为它符合您的要求。

$.setAllowExternalLinksFollowed = function(externalLinkWhitelistArray) {
"use strict";
  var $externalDomLinks = $('a[href^="http"]');
  $externalDomLinks.each(function() {
    var $linkInstance = $(this);
    // Nofollow all ext links
    $linkInstance.attr('rel', 'nofollow');
    externalLinkWhitelistArray.forEach(function(whiteListedUri) {
      if ($linkInstance.attr('href') === whiteListedUri) {
        // Get rid of rel=nofollow from whitelisted links
        $linkInstance.attr('rel', '');
      }
    });
  });
};

这将在需要的视图中初始化,如下所示:

"use strict"
$.setAllowExternalLinksFollowed([
  'http://www.google.com',
  'http://www.cnn.com'
]);

一旦此脚本有机会解析和操作 DOM,所有其他外部链接将在 DOM 检查器中具有 rel="nofollow"。列入白名单的 uri 将改为将属性 rel="nofollow" 截断为 rel=""(或任何你认为适合你的项目的稍作调整)。

使用这支笔查看它的实际效果: http://codepen.io/nicholasabrams/pen/qdXWxB

希望符合要求!

PS:如果您想在服务器端执行此操作,则必须在生成链接的后端代码区域执行此操作,并与出现在jQuery 提供了解决方案。如果没有看到 renders/generates 链接的后端代码,就不可能为服务器端复制解决方案(链接是来自数组还是静态的?我们无法在服务器上执行任何操作,如果链接是静态的 - 它们是我们基于 OP 所知道的所有内容。