Jump to content
Дизайн и модификация Invision Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Kosiak

Noindex и nofollow в ссылках форума

Recommended Posts

Подскажите как сделать чтобы в подписи и в сообщениях к любым ссылкам автоматически добавлялись тэги noindex, nofollow?

Share this post


Link to post

В подписях нет ничего проще. Есть шаблон signature_separator (кажется так) в группе skin_global. Закройте переменную $sig в noindex.

Хотя гораздо проще запретить просмотр подписей гостям, а, следовательно, и ботам.

И это даже лучше, так как nofollow в шаблон не вставить к переменной.

 

А вот о том, чтобы ко всем ссылками это добавлялось, наверное надо править bb-коды. Почитайте у Сонга, там не конкретно, но на эту тему много. Я пыталась вникать , но ничего не поняла, а времени на осмысление было мало.

 

Сообщите, если разберетесь. Мы тут редирект решили делать и таким образом спасаться от растущего количества исходящих ссылок с сайта. Если на ссылках зарабатываешь, то вал ссылок с форума уже не просто лишне, но и опасно. Как занепотят сайт... И все.

Share this post


Link to post

Да, либо редирект либо эти тэги - хотя кашу маслом не испортишь - можно использовать и то и то :(

Share this post


Link to post

Если Влад мод для редиректа от 2.1 переделает, напишу в этой теме. А может он его и в архив выложит, не спрашивала.

С редиректом можно жить спокойно, хотя вот в инструментах вебмастера Гугля встречаю на себя бэки с мастертолка, где редирект установлен.

Там урлы, кстати, автоматом не парсятся, но через bb-коды работают.

Share this post


Link to post

я у себя сделал проще... Правда бб коды править пришлось, зато все ссылки "внешние" режутся. :(

могу выложить

Share this post


Link to post

Выложи, пожалуйста :(

Share this post


Link to post

варварский метод, но сейчас.

./sources/classes/bbcode/class_bbcode_core.php

найти

return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];

заменить на

		//return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];
	if ( (strpos($url['html'], "http://ВАШ ДОМЕН") !== false) or (strpos($url['html'], "http://www.ВАШ ДОМЕН") !== false) )
	{
		return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];
	}
	else
	{
		return ( isset($url['st']) ? $url['st'] : '' ) . "<noindex><a href=\"".$url['html']."\" target=\"_blank\" rel=\"nofollow\">".$show."</a></noindex>" . $url['end'];
	}

./sources/classes/bbcode/class_bbcode_legacy.php

найти

$txt = preg_replace( "#<a href=[\"']mailto:(.+?)['\"]>(.+?)</a>#"								   , "\[email=\\1\]\\2\[/email\]"   , $txt );

добавить выше

			$txt = preg_replace( "#<noindex>#"								   , ""   , $txt );
		$txt = preg_replace( "#</noindex>#"								   , ""   , $txt );

./sources/classes/bbcode/class_bbcode.php

найти

$txt = preg_replace( "#<a href=[\"']mailto:(.+?)['\"]>(.+?)</a>#s"								   , "\[email=\\1\]\\2\[/email\]"   , $txt );

Выше добавить

			$txt = preg_replace( "#<noindex>#"								   , ""   , $txt );
		$txt = preg_replace( "#</noindex>#"								   , ""   , $txt );

 

просто нагло проверяю начало строки на вхождение разрешенного сайта, и делаю ссылку. Если поддомены есть, то добавлять надо с помощью OR. Почему так? Я до сих пор плохо разбираюсь в регулярных выражениях, да и писал не долго это все, для знакомого.

Share this post


Link to post

А там только для noindex работает?

Дело в том, что noindex понимает только Яндекс в таких ссылках. Для мировых поисковиков необходимо nofollow - это атрибут тега .

 

Ссылка в итоге должна принять вид анкор.

По идее nofollow можно в метатеге в header вписать, но тогда ссылки Гуглем не будут индексироваться вообще везде.

А через bb коды это как?

Share this post


Link to post

да что вы прям, там и нофоллоу есть. :) вглядитесь

return ( isset($url['st']) ? $url['st'] : '' ) . "<noindex><a href=\"".$url['html']."\" target=\"_blank\" rel=\"nofollow\">".$show."</a></noindex>" . $url['end'];

Share this post


Link to post

Спасибо... :)

Share this post


Link to post

Да, получилось, спасибо!

Вот ещё бы переадресацию сделать с чёрным/белым списком - было бы вообще круто!

Share this post


Link to post

andaril

А можно как-нибудь сделать так, чтобы все поддомены определённого домена пропускались, чтобы не прописывать кучу вариантов, а к примеру сделать так: *.moy_sait.ru

Share this post


Link to post

я подумал. Можно такое написать, но если урл будет вида _http://porno.mnogo/index.php?fjdkf=fsdfs&moy_sait.ru то такая ссылка тоже отпарсится без ноиндекс.

Share this post


Link to post

Ну такой вариант хоть и возможен, но представляется мне крайне маловероятным.

Share this post


Link to post

так попробуйте (изменять только слова "ВАШ ДОМЕН")

		//return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];
	if ( preg_match( '/http:\/\/(.*?)ВАШ ДОМЕН/i', $url['html'] ) )
	{
		return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];
	}
	else
	{
		return ( isset($url['st']) ? $url['st'] : '' ) . "<noindex><a href=\"".$url['html']."\" target=\"_blank\" rel=\"nofollow\">".$show."</a></noindex>" . $url['end'];
	}

Share this post


Link to post

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...