• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Помогите убрать noreferrer на внешние ссылки

paul_rem

Знаток
Регистрация
29 Июл 2009
Сообщения
397
Реакции
28
Всем привет. Никогда не было проблем с продажей ссылок в статьях на сайтах DLE и вот сегодня пытаюсь отчитаться на бирже а мне пишут, что извини парень, но ссылка отдает noreferrer а это нарушает наши правила и тут я начал разбираться. Движок на DLE 12.1 старая мохнатая версия , не обновлял так как модуль галереи стоит и он отказался работать на обновленной 18 версии и пришлось откатываться назад.
Нашел в сети решение, типа удалить все упоминания этого noreferrer в файле parse.class.php и даже сделал перестроение всех новостей на сайте и все равно не помогло, все равно ссылки такого вида формируются
Код:
<a href="https://4444.pro/info/tiposkogo-orujiy.html" target="_blank" title="что можно " rel="noreferrer noopener">что можно</a>

видимо платформа изменила оферту и стала требовать отдавать noreferrer
 
Последнее редактирование:
Какой редактор используется? Вообще упоминание такого rel только в двух JS файлах нашлось в версии 12.1
engine\editor\jscripts\tiny_mce\plugins\link\plugin.min.js
engine\editor\jscripts\tiny_mce\themes\mobile\theme.min.js

Можешь попробовать удалить их из этих файлов, если tiny_mce используется. Если bbcode - нужно будет глубже искать. И в DLE для этого никаких хаков не ставилось?
 
Какой редактор используется? Вообще упоминание такого rel только в двух JS файлах нашлось в версии 12.1
engine\editor\jscripts\tiny_mce\plugins\link\plugin.min.js
engine\editor\jscripts\tiny_mce\themes\mobile\theme.min.js

Можешь попробовать удалить их из этих файлов, если tiny_mce используется. Если bbcode - нужно будет глубже искать. И в DLE для этого никаких хаков не ставилось?
вот в том то и дело , что хаки никакие не ставил и более того, я просто особо не обращал внимания , что оказывается политикой безопасности DLE с 12 версии во все внешние ссылки сделали эту хрень , я сейчас проверил все другие свои сайты :conf: нашел на их офф форуме пару веток где задают такой же вопрос и тех поддержка прямым текстом пишут, что мол сделали и это факт. Мол сами как хотите ищите в коде и удаляйте ))) в файлах. Прогнал папку инджин через дримвивер, быстро нашел где торчат ноги o_O придется вычищать и смотреть.

Странный факт, что gogetlinks раньше не требовал этот noreferrer а тут бац и такие танцы, типа пункт есть - давай соблюдай. Когда интересно внесли это требование и почему другие еще не активизировались на решение этой проблемы. Пока в инете нет толком нормально описанного решения.
 

Вложения

  • Снимок экрана 2025-07-17 в 17.30.53.png
    Снимок экрана 2025-07-17 в 17.30.53.png
    780,9 KB · Просмотры: 2
Последнее редактирование:
Чтоб много не удалять, можно в engine/modules/main.php перед
echo $tpl->result['main'];
добавить
$tpl->result['main'] = str_replace('rel="noreferrer noopener"', '', $tpl->result['main']);
или
$tpl->result['main'] = preg_replace('/rel=(["\'])(?:noreferrer|noopener|\s)*\1/', '', $tpl->result['main']);
Должно удалить все rel="noreferrer noopener" при генерации страницы.
 
Чтоб много не удалять, можно в engine/modules/main.php перед
echo $tpl->result['main'];
добавить
$tpl->result['main'] = str_replace('rel="noreferrer noopener"', '', $tpl->result['main']);
или
$tpl->result['main'] = preg_replace('/rel=(["\'])(?:noreferrer|noopener|\s)*\1/', '', $tpl->result['main']);
Должно удалить все rel="noreferrer noopener" при генерации страницы.
к сожалению не помогло, вот как у меня выглядит
Код:
$tpl->result['main'] = str_replace ( 'src="http://'.$_SERVER['HTTP_HOST'].'/', 'src="/', $tpl->result['main'] );
$tpl->result['main'] = str_replace ( 'srcset="http://'.$_SERVER['HTTP_HOST'].'/', 'srcset="/', $tpl->result['main'] );
$tpl->result['main'] = str_replace ( 'src="https://'.$_SERVER['HTTP_HOST'].'/', 'src="/', $tpl->result['main'] );
$tpl->result['main'] = str_replace ( 'srcset="https://'.$_SERVER['HTTP_HOST'].'/', 'srcset="/', $tpl->result['main'] );
$tpl->result['main'] = preg_replace('/rel=(["\'])(?:noreferrer|noopener|\s)*\1/', '', $tpl->result['main']);
echo $tpl->result['main'];

$tpl->global_clear();

Ни первый вариант ни второй не изменили ничего ((( и кстати в ручную удалил всё что упоминалось с noreferrer тоже не помогло. Очень странная вещь, это как же они так запрятали всё.
Даже вернул всё назад, восстановил сайт в первоначальный вид до всех изменений, сделал выше предложенные правки, не помогло ((

Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
PHP:
$tpl->result['main'] = preg_replace(
    '/\s*rel=(?:"[^"]*(noopener|noreferrer|external)[^"]*"|\'[^\']*(noopener|noreferrer|external)[^\']*\'|\\\\"[^"]*(noopener|noreferrer|external)[^"]*\\\\"|\\\\\'[^\\\\\']*(noopener|noreferrer|external)[^\\\\\']*\\\\\')/i',
    '',
    $tpl->result['main']
);
Удалит если есть в rel "noopener|noreferrer|external", проверил на 18.0. Версию 121 поставить на php 8.1 dle не дает. Регулярка на всех версиях должна работать.
2025-07-18_15-00-41.png
 
PHP:
$tpl->result['main'] = preg_replace(
    '/\s*rel=(?:"[^"]*(noopener|noreferrer|external)[^"]*"|\'[^\']*(noopener|noreferrer|external)[^\']*\'|\\\\"[^"]*(noopener|noreferrer|external)[^"]*\\\\"|\\\\\'[^\\\\\']*(noopener|noreferrer|external)[^\\\\\']*\\\\\')/i',
    '',
    $tpl->result['main']
);
Удалит если есть в rel "noopener|noreferrer|external", проверил на 18.0. Версию 121 поставить на php 8.1 dle не дает. Регулярка на всех версиях должна работать.
Посмотреть вложение 119276
вот этот вариант сработал. огонь. Спасибо большое.

Хочу добавить для тех кто будет этим методом пользоваться, обязательно почистить КЕШ в системе, у меня не сразу сработал метод на других версиях, лучше на всякий случай везде кеш чистить и в браузере и в DLE
 
Назад
Сверху