Самое радикальное решение борьбы со ссылочным спамом, оставляя кликабельность, это редирект. Данный хак не только ставит редиректы, но и покрывает ссылки редиректа в ноиндекс и нофоллов, таким образом вес вашей страницы не будет уменьшаться из за ссылок например на ту же рапиду. А самая главная фишка, - поддержка сайтов-исключений (дружественных сайтов) на которые редирект ставится не будет. Обрабатываются все ссылки, которые проходят через парсер - новости, коменты, профиль и так далее. Ссылки вставленые в шаблон вами естественно не трогаются. Xак применяется для новостей, которые добавляются после установки этого хака, а старые новости надо заново открывать для редактирования и сохранять. Проверялся на 7.0 и 7.3. Установка...Находим в каталоге engine/classes/ файл parse.class.php, открываем его нашим редактором найдите следующую строчку кода:
Quote if ($this->filter_mode) $txt = $this->word_filter($txt, false); вставляем ниже: /* Раскодировка сформированного URL-адреса
Quote */ $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 ); Находим:
Quote return "<a href="".$url['html']."" ".$target.">".$show."</a>" . $url['end']; Заменяем:
Quote /* Формирование URL-адреса */ 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']; } Находим:
Quote function word_filter($source, $encode = true) { вставляем выше:
Quote /* Функция: "Дружественный URL" */ 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; } Находим:
Quote return "[leech=".$url."]".$show."[/leech]"; } Вставляем ниже:
Quote /* Раскодировка сформированного URL-адреса */ 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]"; } Сохраняем, заливаем. в строке
Quote $friend_url = file($config['http_home_url']."engine/friend/friend_url.txt"); мы указывалипуть к текстовичку, в котором будут дружественные сайты. Изменяем путь и имя по желанию. Создаем в папке engine подпапку friend, файл friend_url.txt. Не забудьте проверить права на чтение нашей папки и файла с URL. Заполняем файл friend_url.txt в каждой строке по домену, в формате http://dletweak.ru/Создаем в корне папку go в ней файл index.php такого содержимого
Quote if (!empty($_SERVER['QUERY_STRING'])){ $re_addr=$_SERVER['QUERY_STRING']; header('Location: '.$re_addr); } ?> создаем там же файл .htaccess содержимого
Quote DirectoryIndex index.php RewriteEngine Off Автор: method Источник: 4dle.ru |