请帮助我正在使用 MYBB 论坛,我想将 rel="nofollow" 添加到所有传出链接,但不是内部链接。
此代码有效,但它向所有链接广告 nofollow 如何使其检查链接是否为内部链接,如果不是则添加 nofollow
function nofollowlink_changelink($message){
$search = '<a';
$replace = '<a rel="nofollow"';
$message = str_replace($search , $replace , $message);
return $message;
}
我不想这段代码不要将 nofollow 添加到$mybb->settings['bburl']
此外,您还有更多代码可以使用。
function nofollowexternal_changelink($message) {
global $mybb;
$message = preg_replace_callback("/<a href=\"(.+)\" (.+)>(.+)<\\/a>/", "replace_external", $message);
return $message;
}
function replace_external($groups) {
global $mybb;
$url = str_replace(array(".", "/"), array("\\.", "\\/"), $mybb->settings['bburl']);
$urls = preg_replace("/^http/","https", $url, 1);
if (preg_match("/$url/", $groups[1]) || preg_match("/$urls/", $groups[1])) {
return $groups[0];
}
else {
return "<a href=\"".$groups[1]."\" target=\"_blank\" rel=\"nofollow\">".$groups[3]."</a>";
}
}
如果 URL 以这种格式发布,则此代码不起作用:URL、URL、URL、URL它只会在最后一个中添加任何关注。请帮忙