Webtun 3 Опубликовано: 8 марта 2010 Рассказать Опубликовано: 8 марта 2010 (изменено) Добрый день! Как многие наверно есть способ так сказать защищать сайт от внешних ссылок. Cсылки типа http://site.ru превращаются в http://moy_site/go/?http://site.ru/ плюс автоматически добавлялось <noindex> и nofollow в нужных местах. Сейчас я выложу тут РАБОЧИЙ код с инструкцией для версий 8 - 8.3. (Автор: seomax.info) (перед изменениями кода на своём сайте обязательно создайте бекап) 1. Находим в каталоге engine/classes/ файл parse.class.php, открываем его (желательно редактором Notepad++)и найдите следующую строчку кода: if ($this->filter_mode) $txt = $this->word_filter($txt, false); После него аккуратно копируем и вставляем код приведенный ниже: /* Назначение: Раскодировка сформированного URL-адреса Автор: www.seomax.info */ $txt = preg_replace( "#<!--FFriend--><noindex><a rel=\"nofollow\" href=[\"'](http://|https://|ftp://|ed2k://|news://|magnet:)?(\S.+?)['\"].+?".">(.+?)</a></noindex><!--EndFFriend-->#ie" , "\$this->decode_friend('\\1\\2', '\\3')", $txt ); 2. Далее находим такой код: return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end']; Удаляем его и вместо него пишем следующий код: /* Назначение: Формирование URL-адреса Автор: www.seomax.info */ if($this->check_home($url['html'])||$this->check_friends($url['html'])) { return "<a href=\"".$url['html']."\" ".$target.">".$show."</a>" . $url['end']; } else { $url['html'] = $config['http_home_url']."go/?".($url['html']); return "<!--FFriend--><noindex><a rel=\"nofollow\" href=\"".$url['html']."\" ".$target.">".$show."</a></noindex><!--EndFFriend-->" . $url['end']; } 3. Продвигаемся далее по коду и находим следующий код: function word_filter($source, $encode = true) { Выше этого кода пишем следующий код: /* Функция: "Дружественный URL" Автор: www.seomax.info */ function check_friends ($url) { global $config; $friend_url = file($config['http_home_url']."engine/friend/friend_url.txt"); for ($i = 0; $i < count($friend_url); $i++) { $value = str_replace("http://", "", trim($friend_url[$i])); $value = str_replace("www.", "", $value); $value = explode('/', $value); $value = reset($value); if ($value == "" ) continue; if (strpos($url, $value) === false) continue; else return true; } return false; } 4. И последний шаг для редактирования этого файла. Найдите код: return "[leech=".$url."]".$show."[/leech]"; } Ниже пишем следующий код /* Функция: Раскодировка сформированного URL-адреса Автор: www.seomax.info */ function decode_friend($url="", $show="") { global $config; $home_url = $config['http_home_url']."go/?"; $url = str_replace($home_url, "", $url); $url = explode ("url=", $url); $url = end ( $url ); $url = rawurldecode($url); return "[url=".$url."]".$show."[/url]"; } 5. Сохраняйте файл parse.class.php -------------------------------------------- 6. Перейдите в каталог engine и создайте папку friend. В нее нужно добавить файл friend_url.txt, структура этого "текстового" файла простая - список URL-адресов дружественных сайтов. Не забудьте добавить права на чтение нашей папки и файла с URL. Смотрите пример: http://dle-news.ru/ http://webtun.com/ Список составляете так как приведено в примере. Обратите внимание на то, что все URL нужно указывать с http:// в начале и / в конце. Сохранили этот список в каталог engine/friend/ с именем friend_url.txt -------------------------------------------- 7. Переходим в корень сайта и создаём в нем папку go. Теперь с помощью нашего редактора (рекомендую Notepad++) сделайте файл index.php со следующим кодом: <?php if (!empty($_SERVER['QUERY_STRING'])){ $re_addr=$_SERVER['QUERY_STRING']; header('Location: '.$re_addr); } ?> Теперь поместите этот файл в каталог go который вы только что создали. Так же, так как хостингов очень много, и практически у каждого свои настройки Apache и так далее, бывает что не определяется файл как индексный. Давайте это исправим, создайте файл .htaccess с текстом внутри: DirectoryIndex index.php RewriteEngine Off Вот и всё. Кто хочет может закрыть в robots.txt закрыть индексацию каталога go На версиях 8, 8.2, 8.3 код работал отлично. Но в версии 8.5 появился так сказать "баг". Если новость отправлять сразу на сайт то и на 8.5 всё работает на ура. Но если новость например прислали или просто не поставить галочку на "Опубликовать новость на сайте" например мы вставили ссылку, не отправили сразу на сайт а просто сохранили. если после этого просмотреть заготовленную новость то он почемуто стала выглядеть так: раньше такого не было. Люди, кто знает как нужно изменить это дополнение чтоб работало на версии 8.5 ???? Что изменилось в файле parse.class.php по сравнению с предыдущими релизами? Сайт webtun.com Изменено 8 марта 2010 пользователем Webtun Ссылка на сообщение Поделиться на других сайтах
llbarmenll 18 Опубликовано: 8 марта 2010 Рассказать Опубликовано: 8 марта 2010 Автор данного хака(нужно было указать ссылку) http://seomax.info/ - у него можно спросить. Ссылка на сообщение Поделиться на других сайтах
Webtun 3 Опубликовано: 8 марта 2010 Рассказать Опубликовано: 8 марта 2010 Автор (копировал не с того источника) добавил ссылку автора Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 9 марта 2010 Рассказать Опубликовано: 9 марта 2010 <noindex> и rel="nofollow" Все давно знают как поисковики относятся к этому, тут спорить можно вечно, но есть практика - которая диктует правила. А надо просто чтобы в следующем релизе по группам давали права на использование или его подмену на [leech] еще плюсом можно добавить noindex и гугла примочки. Ссылка на сообщение Поделиться на других сайтах
Webtun 3 Опубликовано: 9 марта 2010 Рассказать Опубликовано: 9 марта 2010 Автор кроме <noindex> и nofollow этот хак добавляет еще и редирект http://moy_site/go/?http://site.ru/ Ссылка на сообщение Поделиться на других сайтах
gm-mastak 0 Опубликовано: 9 марта 2010 Рассказать Опубликовано: 9 марта 2010 Раз требуется хак, то обновил Защита DataLife Engine 8.5 от спамных ссылок Ссылка на сообщение Поделиться на других сайтах
miron2 0 Опубликовано: 11 ноября 2010 Рассказать Опубликовано: 11 ноября 2010 Для 9.0 подобное существует, если да, то где взять? Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 11 ноября 2010 Рассказать Опубликовано: 11 ноября 2010 Как-то всё очень сложно и коряво. Можно всё это в одну-две строчки вписать и в одном месте, просто заменить любую из ссылок, которая не начинается на "/", либо начинается на любой протокол, например, "http://", но чужого домена (внешнего), при этом совершенно бессмысленно ставить ноуфоллоу и ноуиндекс, если в роботсе запретить индекс редиректной страницы. Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 11 ноября 2010 Рассказать Опубликовано: 11 ноября 2010 Для 9.0 подобное существует, если да, то где взять? стандартная возможность скрипта. Смотрите правила форума и создавайте свою тему с соблюдением правил форума, а не поднимайте чужие старые темы. 1 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения