<分区>
我正在建立一个社区,例如社交网络或任何您称之为的社区。我为所有外部链接设置了一个代码,使它们成为不被关注的链接。
现在,我想编写一些代码,允许我从特定域中删除 nofollow att 并添加 follow att,因此我可以选择在 .php 中手动添加质量域以影响所有根文件夹和子域这些特定的领域。
重点是不要将所有域名都视为垃圾邮件或不推荐给搜索引擎,相反,我只想将社区用户使用的优质域名推荐给搜索引擎。
完整的说明、资源或只是标题都可以。
谢谢。
最佳答案
我使用 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', '');
}
});
});
};
这将在需要的 View 中初始化,如下所示:
"use strict"
$.setAllowExternalLinksFollowed([
'http://www.google.com',
'http://www.cnn.com'
]);
一旦此脚本有机会解析和操作 DOM,所有其他外部链接将在 DOM 检查器中显示为 rel="nofollow"。列入白名单的 uri 将改为将属性 rel="nofollow" chop 为 rel=""(或者您认为适合您的元素的任何内容,稍作调整)。
使用这支笔查看它的实际效果: http://codepen.io/nicholasabrams/pen/qdXWxB
我希望它符合要求!
PS:如果您想在服务器端执行此操作,则必须在生成链接的后端代码区域执行此操作,并与提供的 jQuery 解决方案中出现的内容进行类似的比较。在没有看到呈现/生成链接的后端代码的情况下,复制服务器端的解决方案是不可行的(链接是来自数组,还是静态的?如果链接,我们无法在服务器上做任何事情是静态的 - 它们是我们基于 OP 所知道的一切。
关于javascript - 使用 rel ="follow"设置所有外部链接时,如何手动将 rel ="nofollow"添加到特定域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30822592/