• Автор:

    Flesha
  • Добавлено:

    янв 26, 2015
  • Комментариев:

    1
  • Просмотров:

    1403

Хак Редирект внешних ссылок

Хак Редирект внешних ссылок

Хак Редирект внешних ссылок в Dle - этот маленький хак позволит все внешние ссылки в новостях изменять на sitename/go/? с добавлением тегов от индексации поисковиков noindex и nofollow.

Установка:

1. Открываем файл engine/classes/parse.class.php и находим:
			if( $this->safe_mode AND !$config['allow_search_link'] AND $target )
return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a>" . $url['end'];
else
return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a>" . $url['end'];


Заменяем на:
			if( $this->safe_mode AND !$config['allow_search_link'] AND $target ) {
return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a>" . $url['end'];
} elseif( $this->check_home($url['html']) ) {
return "<a href=\"" . $url['html'] . "\" " . $target . ">" . $url['show'] . "</a>" . $url['end'];
} else {
$url['html'] = $config['http_home_url'] . "go/?" . $url['html'];
return "<a href=\"" . $url['html'] . "\" " . $target . " rel=\"nofollow\">" . $url['show'] . "</a>" . $url['end'];
}


Далее находим, для Dle 10.1, 10.2:
	function decode_url( $matches = array() ) {

$show = $matches[3];
$url = $matches[1].$matches[2];
$url = str_replace("&amp;","&", $url );

return "[url=" . $url . "]" . $show . "[/url]";
}


Для Dle 10.3:
	function decode_url( $matches=array() ) {

$url = $matches[1];
$show = $matches[3];
$params = trim($matches[2]);
if( !$params OR $params == 'target="_blank"' OR $params == 'target="_blank" rel="nofollow"' OR $params == 'rel="nofollow"' ) {
$url = str_replace("&amp;", "&", $url );
return "[url=" . $url . "]" . $show . "[/url]";
} else {
return $matches[0];
}
}


Заменяем на (привести в такой вид), для Dle 10.1,10.2:
	function decode_url( $matches = array() ) {
global $config;
$show = $matches[3];
$url = $matches[1] . $matches[2];
$url = str_replace("&amp;","&", $url );
$url = str_replace($config['http_home_url'] . "go/?", "", $url);

return "[url=" . $url . "]" . $show . "[/url]";
}


Для Dle 10.3:
	function decode_url( $matches = array() ) {
global $config;

$url = $matches[1];
$show = $matches[3];
$params = trim($matches[2]);
if( !$params OR $params == 'target="_blank"' OR $params == 'target="_blank" rel="nofollow"' OR $params == 'rel="nofollow"' ) {
$url = str_replace("&amp;", "&", $url );
$url = str_replace($config['http_home_url'] . "go/?", "", $url);
return "[url=" . $url . "]" . $show . "[/url]";
} else {
return $matches[0];
}
}


2. В корне сайта создаем папку go и в этой папке создаем файл index.php со следующим содержимым:
Вариант 1:
<?php
if( !empty($_SERVER['QUERY_STRING']) ) {
header('Location: ' . $_SERVER['QUERY_STRING']);
} else header('Location: /');
?>


Вариант 2:
<?php
if( !empty($_SERVER['QUERY_STRING']) ) {
echo <<<HTML
<!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">
<head>
<title>Переход по внешней ссылке</title>
<!--meta http-equiv="Content-Type" content="text/html; charset=utf-8" /-->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="robots" content="noindex">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
</head>
<body id="body">
<noindex><br /><br /><center>Перенаправление на внешний ресурс: <br /><br />
<div id="waiting"></div>
<noscript>Нажмите <a href="{$_SERVER['QUERY_STRING']}" rel="nofollow">сюда</a> если ваш браузер не перешел по ссылке автоматически.</noscript></center></noindex>
<script type='text/javascript'>
function countdown(sec) {
sec--;
if( sec > 0 ) {
document.getElementById("waiting").innerHTML = 'Осталось '+sec+'c.';
window.setTimeout("countdown("+sec+")", 1000);
} else {
document.getElementById("waiting").innerHTML = 'Нажмите <a href="{$_SERVER['QUERY_STRING']}" rel="nofollow">сюда</a> если ваш браузер не перешел по ссылке автоматически.';
window.location.href = "{$_SERVER['QUERY_STRING']}";
}
}
countdown(3); // Сколько секунд ждать: 3 = 3 сек.
</script>
</body>
</html>
HTML;
} else header('Location: /');
?>


3.Так же в папке /go/ рекомендуется создать файл .htaccess со следующим содержимым:
DirectoryIndex index.php
RewriteEngine Off


Готово!

Теперь создаем какую-нибудь новость и смотрим на результат.
Все внешние ссылки будут с атрибутом nofollow, а также сама ссылка вида http://site/go/?http://внешняя ссылка

* В админ центре, в разделе Перестроение публикаций выполните перестроение (для старых новостей).

Версия DLE: 10.1-10.3
Автор: i-notes
Автор модификации: vitnet
Сайт модификатора: quantum-soft.ru
Вернуться

Комментарии:


  1. xatin → 27 января 2015 10:52
    А чем плох стандартный ридерект у dle ? вроде бы у него тоже noindex nofollow стоит. Или я не прав?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.