Вы не зашли.
[font=verdana]
Прошарил весь форум и не нашёл нужной инфы.
дело в следующем :
мне нужно закрыть от индексации ПС и передачи веса - все ссылки, которые находятся в статьях, при этом ссылки с сайдбаров и других блоков нужно оставить для индексации ПС
Куда прописывать noindex и nofollow?
Статей много! Поэтому - вручную прописывать их нереально.
Нужен вариант или скриптинга или чего-то другого ...
Как всегда - жду любых ответов от добрых людей
[/font]
Не в сети
Ссылки в HTML формате или в BB кодах?
Если в BB кодах, то можно заставить двиг во все ссылки добавлять нужный тебе тег.
Если в чистом HTML - поможет замена текста в самой БД.
Не в сети
Ссылки в HTML формате или в BB кодах?
Если в BB кодах, то можно заставить двиг во все ссылки добавлять нужный тебе тег.
Если в чистом HTML - поможет замена текста в самой БД.
1. И то и другое.
2. Как это сделать на практике?
3. Здесь - подробнее пожалуйста, я вообще ничего не понял
Не в сети
2. Открой /engine/includes/classes/parse.class.php
Найди
array_push($rdest, "<a ".(implode(" ", $outkeys)).">".$alt.'</a>');
Замени на
array_push($rdest, "<noindex><a ".(implode(" ", $outkeys))." rel=\"nofollow\">".$alt.'</a></noindex>');
3. Установи плагин ireplace
Поочередно в новостях/статических страницах/комментариях произведи следующие замены:
#1. Исходная подстрока
<a
#1. Целевая подстрока
<noindex><a rel="nofollow"
#2. Исходная подстрока
</a>
#2. Целевая подстрока
</a></noindex>
Не в сети
Очень глупый и не разумный метод.
Проще - сделать редиректор(редиректы поисковыми системами не индексируются).
Функции get[.$url.] и редиректа - гугл вам в помощь.
А по сути - пихнуть его в файл, к примеру :
/ваша_главная_папка_сайта/redirector/ > index.php
там же создать файл :
.htaccess
В него добавить :
DirectoryIndex : index.php
RewriteEngine Off
После, спарсить(/engine/includes/classes/parse.class.php) :
$outkeys [] = 'href="'.((!$keys['href'])?$alt:$keys['href']).'"';
Заменяем на :
$chek_url = parse_url($keys['href']);
if ($chek_url['host'] != 'ваш_сайт.домён')
$outkeys [] = 'href="http://ваш_сайт/redirector/?'.((!$keys['href'])?$alt:$keys['href']).'"';
else
$outkeys [] = 'href="'.((!$keys['href'])?$alt:$keys['href']).'"';
И воуля, все ссылки(ВНЕШНИЕ) - станут не индексируемыми, и ненадо быдло-кода rel=nofollow & noindex.
п.с. - для тех кто "вообще в танке" и что такое редирект - неслышали, держим сам редиректор (который нужно пихать в /redirector/index.php) :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Подождите.</title>
<meta http-equiv="refresh" content="6; url=<?=$_SERVER['QUERY_STRING']?>">
<script type="text/javascript">
//<![CDATA[
// Fix Mozilla bug: 209020
if ( navigator.product == 'Gecko' )
{
navstring = navigator.userAgent.toLowerCase();
geckonum = navstring.replace( /.*gecko\/(\d+)/, "$1" );
setTimeout("moz_redirect()",1500);
}
function moz_redirect()
{
var url_bit = "<?=$_SERVER['QUERY_STRING']?>";
window.location = url_bit.replace( new RegExp( "&", "g" ) , '&' );
}
//>
</script>
</head><body>
<div id="redirectwrap"><center>
<noindex>
<h4><b>наш нубо сайт</b></h4>
<p>Все что дальше этой страницы - не наш сайт, ответственности за файлы мы не несем</p>
<p>Вы перешли по внешней ссылке, возможно вы скачиваете файл. Подождите 5 секунды или : </p>
<p class="redirectfoot">(<a href="<?=$_SERVER['QUERY_STRING']?>">нажмите сюда, если не хотите ждать</a>)</p></noindex>
</center>
</div>
</body></html>
Изменено zenn (2009-07-08 14:53:47)
Не в сети
Не вижу разницы. Более того, это решит проблему только с BB-кодами.
Так как бы красивей да и не есть гуд юзать <noindex> <a href="ваш линк" rel="nofollow">.ваш линк.</noindex>
И не забывайте, что у нас поисковых систем в мире не 2 штуки, а редиректор решит проблему сразу со всеми.
Не в сети
insider пишет:Не вижу разницы. Более того, это решит проблему только с BB-кодами.
Так как бы красивей да и не есть гуд юзать <noindex> <a href="ваш линк" rel="nofollow">.ваш линк.</noindex>
И не забывайте, что у нас поисковых систем в мире не 2 штуки, а редиректор решит проблему сразу со всеми.
Грязный хак и красоты в этом нет...
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Грязный хак и красоты в этом нет...
Подскажите какой не грязный. Я бы применил метод insider'a, но он работает для всех ссылок, включая внутренних.
Как сделать чтобы только для внешних ссылок добавлялись нужные теги или редирект?
Не в сети
Проверять хост:
$chek_url = parse_url($keys['href']);
if ($chek_url['host'] != 'site.ru')
array_push($rdest, "<noindex><a ".(implode(" ", $outkeys))." rel=\"nofollow\">".$alt.'</a></noindex>');
else
array_push($rdest, "<a ".(implode(" ", $outkeys)).">".$alt.'</a>');
как-то так
Не в сети
В /engine/includes/classes/parse.class.php
array_push($rdest, "<a ".(implode(" ", $outkeys)).">".$alt.'</a>');
заменить на
$chek_url = parse_url($keys['href']);
if ($chek_url['host'] != 'site.ru')
array_push($rdest, "<noindex><a ".(implode(" ", $outkeys))." rel=\"nofollow\">".$alt.'</a></noindex>');
else
array_push($rdest, "<a ".(implode(" ", $outkeys)).">".$alt.'</a>');
Выше же написано...
Не в сети
Более интересен был вариант от zenn
$chek_url = parse_url($keys['href']);
if ($chek_url['host'] != 'ваш_сайт.
$outkeys [] = 'href="http://ваш_сайт/redirector/?'.((!$keys['href'])?$alt:$keys['
else
$outkeys [] = 'href="'.((!$keys['href'])?$alt:$keys['href']).'"';
Но он как-то не очень работает. А твой работает, но некрасивый, редирект интереснее.
Не в сети
Мой самый красивый, так как не уродует ссылки
Что подразумевается под словами как-то не очень ? Так никто тебе не поможет. Проблема не в CMS в общем, а в файле "редиректора". Движок ссылки заменяет
Изменено Wolverine (2010-02-06 21:09:59)
Не в сети
А если эту строчку
$outkeys [] = 'href="'.$urlREF.'"';
заменить на
$outkeys [] = 'href="http://ваш_сайт/redirector/?'.$urlREF.'"';
Вообще того куска кода я так понял сейчас уже нет в движке:)
Изменено Wolverine (2010-02-06 21:39:43)
Не в сети
1. У меня такой $outkeys [] = 'href="'.$urlREF.'"'; строчки просто нет.
2. Если заменить, то те же яйцы. Ничего не произошло, ссылки также съедаются.
Какая-то беда с вот этой частью:
$outkeys [] = 'href="http://host.ru/redirector/?'.((!$keys['href'])?$alt:$keys['href']).'"';
Не в сети
1. У меня такой $outkeys [] = 'href="'.$urlREF.'"'; строчки просто нет.
325 строчка
http://trac2.assembla.com/ngcms/browser/ngcms/trunk/engine/includes/classes/parse.class.php
2. Если заменить, то те же яйцы. Ничего не произошло, ссылки также съедаются.
как же ты ее заменил, если у тебя ее нет?
Не в сети
Понял тебя, старшой, менял не там. Менять-то нужно в 322 строке, где пишется "Now let's compose a resulting URL"
$chek_url = parse_url($keys['href']);
if ($chek_url['host'] != 'host.ru')
$outkeys [] = 'href="http://host.ru/redirector/?'.$urlREF.'"';
else
$outkeys [] = 'href="'.$urlREF.'"';
Работает нормально, как и нужно. Моё почтение.
Изменено skurudo (2010-02-06 22:43:40)
Не в сети
Плагин будет?
Не в сети