Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
grgv

Исключения для rel='nofollow external'

Рекомендованные сообщения

При включении опции закрытия ссылок от индексации с помощью nofollow возникает нежелательный эффект, если форум находится на поддомене (forum.site.ru) - при этом сам домен site.ru считается почему-то внешним и ссылки на него тоже помечаются тегом nofollow. Это может быть плохо для SEO, ссылки могут вести и на другие домены (друзей, например), тогда их лучше бы не закрывать от индексации.

 

Можно ли написать простой хук, который бы позволял добавлять в список домены, которые в виде исключения не помечались бы тегом nofollow? Для 3.4.х.

Поделиться сообщением


Ссылка на сообщение

Можно включить в разделе использование html и внешние ссылки не закрываются.

Но тоже заинтересован этим вопросом.

Поделиться сообщением


Ссылка на сообщение

Есть, если не ошибаюсь, готовая модификация где можно указать список ссылок к которым не применять nofollow. Насчет самого домена делается очень легко - HTTP_HOST разбивается на части по точке и выбираются два последних элемента. По ним и сравнивается наличие хоста в ссылке.

Поделиться сообщением


Ссылка на сообщение

При включении опции закрытия ссылок от индексации с помощью 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 ) )

  • Upvote 4

Поделиться сообщением


Ссылка на сообщение

Домены "друзей" к которым не применять nofollow:

 

Открыть:

3.4x - /admin/sources/classes/text/parser/bbcode.php

3.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

 

Темы, Сообщения и Опросы -> Белый список доменов

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

siv1987, спасибо за приведенный код :) Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.х :)

Я разместил такую же тему на IPS и на IBR - реакции пока нет.

 

P.S.: Вообще, по-моему IPB теряет популярность с таким подходом разработчиков к тем, кто пишет хуки. Да и хуков толковых процентов пять, не больше. Остальные - тупые рюшечки. :(

Поделиться сообщением


Ссылка на сообщение
Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.х

Хук не так просто запилить как вам кажется. С правкой файлов вы делаете одну правку в коде и получаете нужный функционал, а с хуком нужно написать стопиццот строк кода, распарсить готовый результат, произвести необходимые модификации, собрать его обратно. Имхо, если человеку нужен именно функционал - он не заморачивается хуком только ради хука. Хук это как правило костыль. Костыль, который можно отключить или включить удобным интерфейсом в АЦ, вот и все. Да, я понимаю, хуком очень удобно оправдать платную модификацию - дополнительная работа для исполнителя, дополнительный индусо код, юзеру удобно - нужно только установить хук, никаких дополнительных телодвижений. Но на халяву и когда редактировать нужно только одну строчку, имхо, можно обойтись и без хука. :) Кому будет интереснее написать, навправление куда копать дальше он уже знает.

Поделиться сообщением


Ссылка на сообщение

siv1987

Большое спасибо за метод Домены "друзей"! Очень полезная функция, добавил домен друга :)

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...