grgv Posted January 15, 2015 Share Posted January 15, 2015 При включении опции закрытия ссылок от индексации с помощью nofollow возникает нежелательный эффект, если форум находится на поддомене (forum.site.ru) - при этом сам домен site.ru считается почему-то внешним и ссылки на него тоже помечаются тегом nofollow. Это может быть плохо для SEO, ссылки могут вести и на другие домены (друзей, например), тогда их лучше бы не закрывать от индексации. Можно ли написать простой хук, который бы позволял добавлять в список домены, которые в виде исключения не помечались бы тегом nofollow? Для 3.4.х. Link to comment Share on other sites More sharing options...
Атаман Posted January 15, 2015 Share Posted January 15, 2015 Можно включить в разделе использование html и внешние ссылки не закрываются.Но тоже заинтересован этим вопросом. Link to comment Share on other sites More sharing options...
siv1987 Posted January 15, 2015 Share Posted January 15, 2015 Есть, если не ошибаюсь, готовая модификация где можно указать список ссылок к которым не применять nofollow. Насчет самого домена делается очень легко - HTTP_HOST разбивается на части по точке и выбираются два последних элемента. По ним и сравнивается наличие хоста в ссылке. Link to comment Share on other sites More sharing options...
siv1987 Posted January 15, 2015 Share Posted January 15, 2015 При включении опции закрытия ссылок от индексации с помощью nofollow возникает нежелательный эффект, если форум находится на поддомене (forum.site.ru) - при этом сам домен site.ru считается почему-то внешним и ссылки на него тоже помечаются тегом nofollow.Для 3.4.x Открыть /admin/sources/classes/text/parser/bbcode.phpНайти: /* Fetch actual host for better matching */ $data = @parse_url( $url ); Ниже добавить: $http_host = implode( '.', array_slice( explode( '.', $_SERVER['HTTP_HOST'] ), -2 ) ); Найти 2 раза (первый для nofollow, второй для external): if ( ! stristr( $data['host'], $_SERVER['HTTP_HOST'] ) ) Заменить на: if ( ! stristr( $data['host'], $http_host ) ) Для 3.3.x Открыть /admin/sources/classes/bbcode/custom/defaults.phpНайти: /* Fetch actual host for better matching */ $data = @parse_url( $option ); Ниже добавить: $http_host = implode( '.', array_slice( explode( '.', $_SERVER['HTTP_HOST'] ), -2 ) ); Найти: if ( ! stristr( $data['host'], $_SERVER['HTTP_HOST'] ) ) Заменить на: if ( ! stristr( $data['host'], $http_host ) ) 4 Link to comment Share on other sites More sharing options...
siv1987 Posted January 15, 2015 Share Posted January 15, 2015 Домены "друзей" к которым не применять nofollow: Открыть:3.4x - /admin/sources/classes/text/parser/bbcode.php3.3x - /admin/sources/classes/bbcode/custom/defaults.php Найти: $rels[] = "nofollow"; Заменить на: $whiteHosts = array_filter( explode( "\n", $this->settings['white_hosts'] ) ); $allowHost = false; foreach( $whiteHosts as $v ) { if( stristr( $data['host'], trim( $v ) ) ) { $allowHost = true; break; } } if( ! $allowHost ) { $rels[] = "nofollow"; } Админцентр -> Системные настройки -> Импортировать файл с настройками (внизу страницы)settingGroup_temy-soobscheniia-i-oprosy.xml Темы, Сообщения и Опросы -> Белый список доменов 3 Link to comment Share on other sites More sharing options...
grgv Posted January 16, 2015 Author Share Posted January 16, 2015 siv1987, спасибо за приведенный код :) Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.х :)Я разместил такую же тему на IPS и на IBR - реакции пока нет. P.S.: Вообще, по-моему IPB теряет популярность с таким подходом разработчиков к тем, кто пишет хуки. Да и хуков толковых процентов пять, не больше. Остальные - тупые рюшечки. :( Link to comment Share on other sites More sharing options...
siv1987 Posted January 16, 2015 Share Posted January 16, 2015 Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.хХук не так просто запилить как вам кажется. С правкой файлов вы делаете одну правку в коде и получаете нужный функционал, а с хуком нужно написать стопиццот строк кода, распарсить готовый результат, произвести необходимые модификации, собрать его обратно. Имхо, если человеку нужен именно функционал - он не заморачивается хуком только ради хука. Хук это как правило костыль. Костыль, который можно отключить или включить удобным интерфейсом в АЦ, вот и все. Да, я понимаю, хуком очень удобно оправдать платную модификацию - дополнительная работа для исполнителя, дополнительный индусо код, юзеру удобно - нужно только установить хук, никаких дополнительных телодвижений. Но на халяву и когда редактировать нужно только одну строчку, имхо, можно обойтись и без хука. :) Кому будет интереснее написать, навправление куда копать дальше он уже знает. Link to comment Share on other sites More sharing options...
Strategius Posted July 22, 2016 Share Posted July 22, 2016 siv1987Большое спасибо за метод Домены "друзей"! Очень полезная функция, добавил домен друга :) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now