Главная » Файлы » Все для DLE » Хаки

Редирект с поддержкой исключений
25.04.2011, 13:24
Самое радикальное решение борьбы со ссылочным спамом, оставляя кликабельность, это редирект. Данный хак не только ставит редиректы, но и покрывает ссылки редиректа в ноиндекс и нофоллов, таким образом вес вашей страницы не будет уменьшаться из за ссылок например на ту же рапиду. А самая главная фишка, - поддержка сайтов-исключений (дружественных сайтов) на которые редирект ставится не будет. 
Обрабатываются все ссылки, которые проходят через парсер - новости, коменты, профиль и так далее. Ссылки вставленые в шаблон вами естественно не трогаются. 
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
Категория: Хаки | Добавил: slavavirtus
Просмотров: 440 | Загрузок: 0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]