ХАК Закрытие/редирект внешних ссылок

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.895
113
Россия
null-prog.ru
Наверное, вы обратили внимание, как на этом форуме выглядят все внешние ссылки? При наведении на них мышкой появляется надпись "Внешняя ссылка, реферер не передается..." Эта темка посвящена тому, как сделать то же самое у вас на форуме.
Поисковики перестанут видеть внешние ссылки, для них это будет просто тег <span>

Примечание: требуется редактирование исходных файлов движка.

Порядок действий:
1) Скачиваем хак.
2) Редактируем на сервере файл includes/class_bbcode.php, на всякий случай предварительно сохранив исходную (неизменённую) копию. Текст замены одной из функций (а не всего файла, обратите внимание!) приведен в файле external_links данного архива.
3) Импортируем продукт в нужной кодировке.
4) В шаблоне headinclude нужного стиля в самом низу добавляем скрипт:
Код:
<script type="text/javascript">
<!--
function open_external(url, id)
{
     w = window.open('about:blank', id);
     w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
     w.document.close();
     return false;
}
-->
</script>
5) Смотрим на форуме - изменились внешние ссылки или нет. Если нет, то переходим в phpmyAdmin и выполняем запрос к базе данных:

PHP код:
TRUNCATE TABLE postparsed
Если у вашей базы данных есть префикс у таблиц (можно посмотреть в списке таблиц) то добавляем его перед названием данной таблицы:

PHP код:
TRUNCATE TABLE префикс_postparsed
После этого убедимся, что запрос выполнен (об этом будет сообщение SQL-запрос был успешно выполнен) и любуемся на новый вид внешних ссылок.
(Если и это не помогло, в админке - "обслуживание" перестраиваем кеш сообщений).

Настройки продукта находятся в настройках bb-кодов, и там, собственно, всего один пункт: В этом пункте вы можете указать домены, которые не будут открываться яваскриптом. По умолчанию в форме указаны сайты техподдержки.

Обратите внимание: хак работает только со ссылками, заключенными в тег bb-кода URL, включите в настройках пункт "Автоматически вставлять ссылки".
Примечание: браузер Опера реферер всё же передает.
Проверила данный хак на своём форуме - работает.