Посоветуйте скрипт добавления nofollow к внешним ссылкам - Форум успешных вебмастеров - GoFuckBiz.com - Страница 3
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.2486
BTC/USD69129.0096
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 22.02.2020, 01:47
Start Post: Посоветуйте скрипт добавления nofollow к внешним ссылкам 
  #21
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
По умолчанию

Привет баблорубы, сабж.
Есть сайт на несколько K страниц, на каждой странице есть внешние ссылки.
Нужно скриптом ко всем внешним ссылкам добавить nofollow.
Пробовал такое решение, но он херачет nofollow и к внутренним и noindex вокруг них
Не особо шарю в js, может посоветуете готовое решение?
PHP код:
<script>
    var 
wlist = [
       
"javascript:",
       
"<strong>https://site.com/</strong>"
    
];
function 
addLoadEvent(func) {
 var 
oldonload window.onload;
 if (
typeof window.onload != 'function') {
    
window.onload func;
 } else {
    
window.onload = function() {
      if (
oldonload) {
         
oldonload();
       }
      
func();
    }
 }
    }
    function 
LinksExt() {
       var 
tags document.all?document.all:document.getElementsByTagName("*");
       function 
test(str) {
          for (var 
url in wlist)
          if( 
str.indexOf(wlist[url])==)
             return 
1;
          return 
0;
       }
       for (var 
i=0i<tags.lengthi++)
       if( 
tags[i].nodeName == "A" ) {
         var 
link tags[i];
         if ( 
link.href && !test(link.href) ) {
            
link.rel="nofollow";
            
link.outerHTML =
              
"<!--noindex-->" 
              
link.outerHTML 
              
"<!--/noindex-->";
         }
       }
    }
    
addLoadEvent(LinksExt);
</script> 
Aglomerat вне форума  
Старый 22.02.2020, 18:50   #22
incognito
Senior Member
 
Аватар для incognito
 
Регистрация: 08.07.2007
Сообщений: 177
Бабло: $34565
По умолчанию

Sultan, и как с помощью preg_replace отфильтровать свой/не свой домен в линке?
Если только составить регулярное выражение иначе, и в нем это учесть.
__________________
incognito вне форума  
Старый 22.02.2020, 19:15   #23
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,879
Бабло: $1863105
По умолчанию

если есть возможность использовать ф-ю, надо использовать ф-ю
регекспы всегда дороже
веломан вне форума  
Старый 22.02.2020, 19:53   #24
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

Цитата:
Сообщение от incognito Посмотреть сообщение
Sultan, и как с помощью preg_replace отфильтровать свой/не свой домен в линке?
Если только составить регулярное выражение иначе, и в нем это учесть.
Цитата:
Сообщение от веломан Посмотреть сообщение
если есть возможность использовать ф-ю, надо использовать ф-ю
регекспы всегда дороже
я же не в обиду, что плохо напечатал, где то по памяти, кажется str_.. проигрывает preg_..
так то я профан, в основном обученными людьми пользуюсь, иногда нужные куски кодов гуглю, вот например, хз за работу, включил бы мултистринг s и отключил жадность U
Цитата:
PHP код:
$regex '%(<a\shref="(?!https?://site\.ru))(.*?</a>)%i'// sU добавил бы для универсальности
$replacement '<noindex><a rel="nofollow" href="$2 </noindex>';
$result preg_replace($regex$replacement$text); 
https://prosto-tak.ru/obernut-vneshn...ex-i-nofollow/
site\.ru типо свое исключает
<a\shref но тут и \s лучше бы поменять и кавычки
короче читаю и перевожу с манами

Последний раз редактировалось Sultan; 22.02.2020 в 20:06.
Sultan вне форума  
Старый 22.02.2020, 23:49   #25
digg
$400
 
Аватар для digg
 
Регистрация: 17.05.2009
Сообщений: 14,035
Бабло: $1904370
Отправить сообщение для digg с помощью ICQ
По умолчанию

Цитата:
Сообщение от Sultan Посмотреть сообщение
digg, тоже не дружишь?
та дружу со всем, но по личному опыту часто бывает так, что быстрее руками в тексте автозаменой что-то пофиксить, чем писать одноразовый скрипт
тупо экономия ресурсов времени и мозга
digg вне форума  
Старый 23.02.2020, 03:18   #26
Beenlookingfor
Юниор
 
Регистрация: 21.02.2020
Сообщений: 1
Бабло: $1110
По умолчанию

На JS нет смысла добавлять этот тег, тк. ПС просканирует его без него, а JS добавит его только в браузере.
Beenlookingfor вне форума  
Старый 24.02.2020, 14:31   #27
digg
$400
 
Аватар для digg
 
Регистрация: 17.05.2009
Сообщений: 14,035
Бабло: $1904370
Отправить сообщение для digg с помощью ICQ
По умолчанию

ну, вообще да, вопрос интересный
надо бы на чем-то потестить
digg вне форума  
Старый 30.03.2020, 19:36   #28
RacoonRise
Юниор
 
Регистрация: 16.03.2020
Сообщений: 3
Бабло: $1510
По умолчанию

Оу, тоже как раз искал) Спасибо!
RacoonRise вне форума  
Старый 10.06.2021, 16:44   #29
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от RacoonRise Посмотреть сообщение
Оу, тоже как раз искал) Спасибо!
у меня заработало вот так, через регулярку:
echo preg_replace('/<a(.*?)href=["\']([^"\']*)["\']/s', '<a$1href="$2" rel="nofollow noopener noreferrer"');
Aglomerat вне форума