user2426 0 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 (изменено) Мой сайт - http://crypto-mining.ru/ Здравствуйте, задался проблемой закрыть все внешние ссылки в новостях тегом rel="nofollow", на сколько я знаю стандартной функции в настройках dle нет, но помниться уже давно сделан хак - покопавшись я его нашёл и там предлагают в файле parse.class.php заменить return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a>" . $url['end']; else return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a>" . $url['end']; на return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a></noindex>" . $url['end']; else return "<noindex><a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a></noindex>" . $url['end']; Но зайдя в parse.class.php я обнаружил чуть ниже этого кода две функции add_rel и remove_rel, которые как я понял есть в более новых версиях движка и отвечают за эти самые релы. Немного отредактировал их - добавив в тех местах где были указаны добавляемые и удаляемые релы ещё и nofollow, вот таким образом: if( preg_match( "#rel=['\"](.+?)['\"]#i", $params, $match ) ) { $new_params = array("external", "noopener", "noreferrer", "nofollow"); $exist_params = trim(preg_replace('/\s+/', ' ', $match[1])); $exist_params = explode(" ", $exist_params); foreach ($new_params as $value) { if(!in_array( $value, $exist_params ) ) $exist_params[] = $value; } $exist_params = implode(" ", $exist_params); $params = str_ireplace($match[0], "rel=\"{$exist_params}\"", $params); } else { $params .= " rel=\"external noopener noreferrer nofollow\""; } function remove_rel( $matches=array() ) { $params = trim( $matches[1] ); if( preg_match( "#rel=['\"](.+?)['\"]#i", $params, $match ) ) { $remove_params = array("external", "noopener", "noreferrer", "nofollow"); $new_params = array(); .................................... Перестроил публикации - вроде бы всё нормально, ко всем ссылкам добавился nofollow, но всё же хотелось бы совета - правильно ли я всё сделал или могут быть какие-то соби из-за моих "доработок"? Изменено 24 января 2018 пользователем user2426 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 24 минуты назад, user2426 сказал: на сколько я знаю стандартной функции в настройках dle нет Ошибаетесь это стандартная возможность скрипта, уже как несколько версий. Ничего делать и править не нужно, при использовании актуальных версий скрипта. Цитата Ссылка на сообщение Поделиться на других сайтах
user2426 0 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 Автор 57 минут назад, celsoft сказал: Ошибаетесь это стандартная возможность скрипта, уже как несколько версий. Ничего делать и править не нужно, при использовании актуальных версий скрипта. И правда, криво обновился в прошлый раз похоже - обновился теперь до 12.1, но что-то всё равно не вижу где данная функция включается, подскажите пожалуйса, в каком разделе админпанели её найти. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 40 минут назад, user2426 сказал: И правда, криво обновился в прошлый раз похоже - обновился теперь до 12.1, но что-то всё равно не вижу где данная функция включается, подскажите пожалуйса, в каком разделе админпанели её найти. Она работает автоматически, ее не нужно включать. Цитата Ссылка на сообщение Поделиться на других сайтах
user2426 0 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 Автор 6 часов назад, celsoft сказал: Она работает автоматически, ее не нужно включать. Сейчас попробовал добавить новость после обновление - не ставит nofollow. Я правильно понимаю, что вот этот кусок кода отвечает за проставление nofollow? if ($this->safe_mode AND !$config['allow_search_link'] AND $target) return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a>" . $url['end']; allow_search_link у меня выставлен 0, $raget как я понимаю тоже имеется, но вот что за параметр safe_mode? Это переключить серверв нужно в safe_mod чтобы автоматом nofollow выставляло? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 10 минут назад, user2426 сказал: Я правильно понимаю, что вот этот кусок кода отвечает за проставление nofollow? Нет не правильно. Совершенно другой код. 11 минуту назад, user2426 сказал: Сейчас попробовал добавить новость после обновление - не ставит nofollow. Значит либо ссылка не внешняя, либо вы обновили не все файлы скрипта на сервере и часть у вас осталась от старых версий. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 24 января 2018 Рассказать Опубликовано: 24 января 2018 Хотя я например вижу на вашем сайте, что все корректно работает для внешних ссылок, например http://crypto-mining.ru/bitcoin_news/975-opera-browser-vnedryaet-anti-mayningovoe-po-dlya-dlya-mobilnyh-ustroystv.html для ссылки cointelegraph.com все атрибуты стоят. Цитата Ссылка на сообщение Поделиться на других сайтах
user2426 0 Опубликовано: 25 января 2018 Рассказать Опубликовано: 25 января 2018 (изменено) Автор В 24.01.2018 в 18:47, celsoft сказал: Хотя я например вижу на вашем сайте, что все корректно работает для внешних ссылок, например http://crypto-mining.ru/bitcoin_news/975-opera-browser-vnedryaet-anti-mayningovoe-po-dlya-dlya-mobilnyh-ustroystv.html для ссылки cointelegraph.com все атрибуты стоят. Я дописал вручную nofollow, как в первом посте. Скорее всего проблема с кривым обновлением, вначале криво (не по инструкции) обновился с нуленой версии до 11.3, теперь обновился до последней и вроде всё нормально, но похоже не до конца, возможно какие-то файлы потерялись при первом обновлении. В принципе, проблему решил, а это главное Изменено 25 января 2018 пользователем user2426 Цитата Ссылка на сообщение Поделиться на других сайтах
Primary Sphinx 32 Опубликовано: 25 января 2018 Рассказать Опубликовано: 25 января 2018 (изменено) В 24.01.2018 в 09:22, celsoft сказал: Ошибаетесь это стандартная возможность скрипта, уже как несколько версий. Ничего делать и править не нужно, при использовании актуальных версий скрипта. Насколько я помню, несколько версий тому назад к внешним ссылкам автоматически был добавлен атрибут rel = "external noopener noreferrer". Параметра nofollow там не было. Или я что-то пропустил?.. И, насколько я понимаю, эти параметры больше для безопасности, а вес они по ссылке вполне себе передают. Поправьте, если я заблуждаюсь. Изменено 25 января 2018 пользователем Primary Sphinx Цитата Ссылка на сообщение Поделиться на других сайтах
user2426 0 Опубликовано: 25 января 2018 Рассказать Опубликовано: 25 января 2018 (изменено) Автор 14 минуты назад, Primary Sphinx сказал: Насколько я помню, несколько версий тому назад к внешним ссылкам автоматически был добавлен атрибут rel = "external noopener noreferrer". Параметра nofollow там не было. Или я что-то пропустил?.. И, насколько я понимаю, эти параметры больше для безопасности, а вес они по ссылке вполне себе передают. Поправьте, если я заблуждаюсь. Вот я external noopener noreferrer тоже заметил, а nofollow не было (по крайней мере у меня). Изменено 25 января 2018 пользователем user2426 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 25 января 2018 Рассказать Опубликовано: 25 января 2018 47 минут назад, Primary Sphinx сказал: Насколько я помню, несколько версий тому назад к внешним ссылкам автоматически был добавлен атрибут rel = "external noopener noreferrer". Параметра nofollow там не было. Или я что-то пропустил?.. И, насколько я понимаю, эти параметры больше для безопасности, а вес они по ссылке вполне себе передают. Поправьте, если я заблуждаюсь. Вы правы, читая эту тему я писал, держа в голове external noopener noreferrer, а тут то спрашивали про запрет на индексацию nofollow. Нет все верно DLE не ставит запретов на индексацию ссылок. Только параметры безопасности ставит для внешних ссылок. Прошу прощения, не внимательно сообщение в теме прочитал. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.