Для закрытия ссылок на форуме с движком vBulletin я ещё год назад применил следующую методику:
Открываем файл _Директория vBulletin_/includes/class_bbcode.php, и находим там функцию обработки ссылок:
function handle_bbcode_url($text, $link)
В функцию в качестве параметров передаются:
$text - текст ссылки, указанной пользователем, и
$link - сама ссылка.
Эта функция занимается обработкой ссылок в посте пользователя. В конце концов, переменная $rightlink содержит ссылку, а $text - текст ссылки. После обработки, возвращает строку вида:
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
Для закрытия ссылок, а именно, закрытие ссылок параметром rel=nofollow, надо всего лишь добавить наш параметр в указанный выше код:
return "<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";
Однако, вдруг нам надо закрывать не все ссылки?
Более детальная настройка: Мы хотим, чтобы ссылки на наш форум не закрывались. И ещё, рассмотрим случай, когда наш форум установлен в папке сайта, то есть типа: http://www.example.com/forum/ - ведь тогда желательно не закрывать ссылки в vBulletin и для домена www.example.com. И ещё сайт example.ru является нашим доменом. Тогда перед return пишем:
$pos1 = strpos($rightlink, 'example.com');
$pos2 = strpos($rightlink, 'example.ru');
if ( ($pos1 === false) && ($pos2 === false) ) {
$relnofollow = "rel=\"nofollow\"";
}
else
$relnofollow = "";
А сам return изменяем в виде:
return "<a href=\"$rightlink\" ".$relnofollow." target=\"_blank\">$text</a>";
Стоит отметить, что таким же образом Вы можете закрыть ссылки и тегами noindex для Яндекса. Однако, стоит ли закрывать ссылки от Яши, раз она всё равно не учитывает их при расчёте тИЦ?
Таким же образом, можно сделать всё что угодно с нежелательными урлами.