1

请帮助我正在使用 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它只会在最后一个中添加任何关注。请帮忙

4

0 回答 0