Улучшенные ссылки для Эгеи
Изменяем механизм интерпретации href-ссылок в тексте записей

В этом посте хочу рассказать о том, каким образом можно модернизировать href-ссылки на твоём блоге, стоящем на Эгее.
Смысл этой доработки в том, что ты сможешь управлять ссылками, которые ты проставляешь в контенте, когда пишешь статьи. В каком смысле управлять?
Например, ты ссылаешься на какой-то сторонний ресурс, но не хочешь, чтобы поисковики интерпретировали эту ссылку как внешнюю, а распознавали её как внутреннюю и при этом по ней не передавался вес страницы с которой эта ссылка проставлена.
Либо наоборот, ты хочешь, чтобы ссылка была внешняя и вес по ней передавался, как и в ситуации со ссылками на внутренние страницы твоего блога, чтобы равномерно распределять вес и успешно делать перелинковку.
Эгея использует движок Neadsen в том числе и для интерпретации особого синтаксиса в тексте, соответственно ссылки в тексте проставляются следующим образом так:
Вариант 1: ((https://okatiev.ru Мой блог))
Вариант 2: [[https://okatiev.ru Мой блог]]
Результат: Мой блог
или так:
Вариант 3: https://okatiev.ru
Результат: https://okatiev.ru
Соответственно мы видим то, что со ссылками в тексте ничего серьезного не поделаешь, не добавишь rel=«nofollow», как минимум. Только если использовать html-код и строить ссылку вручную с указанием rel=«nofollow» и т. д.
Не совсем удобно, как по мне. Поэтому я задумался о простом и удобном решении, которое удовлетворило бы меня и я его придумал.
Правка файлов движка
Первым делом нужно вооружиться текстовым редактором и FTP-клиентом, затем подключиться к FTP-серверу к твоему сайту и открыть на редактирование следующий файл:
Обязательно делайте резервную копию вашего оригинального файла перед правкой!
/system/neadsen/config.php
Путь начинается от корня твоего сайта.
В файле нужно найти следующие строки:
'banned-groups' => array (
Должно быть четыре строки.
и перед каждой добавить следующую строку:
'typography.nofollowhrefs' => true,
Затем найти строку:
'typography.cleanup' => array (
и перед ней снова добавить:
'typography.nofollowhrefs' => true,
Сохранить и закрыть файл /system/neadsen/config.php
Теперь тебе нужно открыть файл /neadsen.php, который лежит рядом в этой же папке и найти в нем строку
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .' class="nu">');
заменить на
/** Мои доработки 1 СТАРТ */
if (preg_match('/okatiev\.ru/', strtolower($href))) {
if (preg_match('/\.n0f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.n0f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .' class="nu">');
} else {
$a_in = $this->isolate ('<a href="'. $href .'" class="nu">');
}
} elseif (preg_match('/\.f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'" class="nu">');
} elseif (preg_match('/\.n0f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.n0f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .' class="nu">');
} else {
$a_in = $this->isolate ('<a href="https://okatiev.ru/goto?url='. $href .'"'. $rel_nofollow .' class="nu">');
}
/** Мои доработки 1 СТОП */
Замени в этом коде okatiev.ru на адрес своего сайта.
Затем найди строку
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .'>');
и замени на
/** Мои доработки 2 СТАРТ */
if (preg_match('/okatiev\.ru/', strtolower($href))) {
if (preg_match('/\.n0f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.n0f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .'>');
} else {
$a_in = $this->isolate ('<a href="'. $href .'">');
}
} elseif (preg_match('/\.f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'">');
} elseif (preg_match('/\.n0f0ll0w/', strtolower($href))) {
$href = preg_replace('/\.n0f0ll0w/', '', $href);
$a_in = $this->isolate ('<a href="'. $href .'"'. $rel_nofollow .'>');
} else {
$a_in = $this->isolate ('<a href="https://okatiev.ru/goto?url='. $href .'"'. $rel_nofollow .'>');
}
/** Мои доработки 2 СТОП */
Замени в этом коде okatiev.ru на адрес своего сайта.
Следом найди строки
return (
$possible_space .
$this->isolate ('<a href="'. $url .'"'. $rel_nofollow .'>'. $url .'</a>')
);
и замени на
/** Мои доработки 3 СТАРТ */
if (preg_match('/okatiev\.ru/', strtolower($url))) {
if (preg_match('/\.n0f0ll0w/', strtolower($url))) {
$url = preg_replace('/\.n0f0ll0w/', '', $url);
return (
$possible_space .
$this->isolate ('<a href="'. $url .'"'. $rel_nofollow .'>'. $url .'</a>')
);
} else {
return (
$possible_space .
$this->isolate ('<a href="'. $url .'">'. $url .'</a>')
);
}
} elseif (preg_match('/\.f0ll0w/', strtolower($url))) {
$url = preg_replace('/\.f0ll0w/', '', $url);
return (
$possible_space .
$this->isolate ('<a href="'. $url .'">'. $url .'</a>')
);
} elseif (preg_match('/\.n0f0ll0w/', strtolower($url))) {
$url = preg_replace('/\.n0f0ll0w/', '', $url);
return (
$possible_space .
$this->isolate ('<a href="'. $url .'"'. $rel_nofollow .'>'. $url .'</a>')
);
} else {
return (
$possible_space .
$this->isolate ('<a href="https://okatiev.ru/goto?url='. $url .'"'. $rel_nofollow .'>'. $url .'</a>')
);
}
/** Мои доработки 3 СТОП */
Замени в этом коде okatiev.ru на адрес своего сайта.
Сохрани и закрой файл /neadsen.php.
Создание go.php и правка .htaccess
С модификацией ссылок мы закончили, теперь нужно создать в корне сайта файл с названием и расширением go.php. Права на файл выставь 0755.
В файл вставь следующий код:
<?php if (isset($_SERVER['QUERY_STRING']) && preg_match('/url=http|url=ftp/', strtolower($_SERVER['QUERY_STRING']))) {
// Настройка скрипта
$title = "Блог Александра Окатьева"; // Название Вашего сайта в именительном падеже
$titler = "Блога Александра Окатьева"; // Название Вашего сайта в родительном падеже
$site = "https://okatiev.ru"; // Полный адрес Вашего сайта
// Конец настроек
// Для того, что бы сделать переход по ссылке на Вашем сайте через эту страницу,
// необходимо указать ссылку в виде http://you-site.ru/go.php?url=http://link.ru
// При этом данный скрипт должен находится в корне Вашего сайта.
// Получаем ссылку для редиректа
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
if(preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
sleep(0);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Переход по внешней ссылке <?php echo $url; ?></title>
</head>
<body style="padding:20px 180px; font-size:12px; font-family:Tahoma; line-height:200%">
<h2>Переход по внешней ссылке</h2>
<p>
Вы покидаете <a href="<?php echo $site; ?>"><?php echo $title; ?></a>
по внешней ссылке <b><?php echo $url; ?></b>.
</p>
<p>
Мы не несем ответственности за содержимое сайта <b><?php echo $url; ?></b>
и настоятельно рекомендуем вам <b>не указывать</b>
свои личные данные на сторонних сайтах.
</p>
<p>
Кроме того, сайт <b><?php echo $url; ?></b>
может содержать вирусы, трояны и другие вредоносные программы, которые могут нанести вред вашему компьютеру.
</p>
<p>
Если у вас нет серьезных оснований доверять сайту <b><?php echo $url; ?></b> - закройте эту вкладку.
</p>
<p>
Если вы уверенны в безопасности сайта <b><?php echo $url; ?></b>, то нажмите на <a rel="nofollow" href="<?php echo $url; ?>" id="page"><?php echo $url; ?></a> или дождитесь автоматического перенаправления через <b><span id="timer">10</span><script type="text/javascript">
window.onload = function () {
var timer = document.getElementById("timer");
var delay = 10;
var location = "<?php echo $url; ?>";
var interval = setInterval(function () {
if(delay)
{
delay--;
}
timer.innerHTML = delay;
if(delay <= 0)
{
clearInterval(interval);
window.location.href=location;
}
}, 1000);
};
</script> секунд.</b>
</p>
<h3><?php echo $title; ?> всегда заботится о вашей безопасности!</h3>
</body>
</html>
<? } else {
Header('Location: /');
} ?>
Соответственно значение переменных $title, $titler и $site замени на свои.
Сохрани и закрой файл go.php, но открой файл .htaccess в корне своего сайта.
После строки
RewriteEngine On
Добавь строку
Rewriterule ^goto$ /go.php [L]
Сохрани и закрой файл .htaccess. На этом работа с правкой файлов закончена, можно переходить к изучению того, как это работает.
Как это работает?
Теперь ты можешь в полной мере манипулировать ссылками, которые добавляешь в свой контент.
По-умолчанию, если ты добавляешь внешнюю голую ссылку в текст
http://externalsite.ru
, она автоматически преобразуется во внутреннюю ссылку вида:
https://okatiev.ru/goto?url=http://externalsite.ru
В работу включается наш ранее созданный файл go.php и переадресовывает нас на внешний ресурс, например: http://externalsite.ru
Если ты добавишь анкорную ссылку в текст
((http://externalsite.ru Ссылка на внешний сайт))
, то автоматически получишь ссылку вида
https://okatiev.ru/goto?url=http://externalsite.ru
, но уже с анкором «Ссылка на внешний сайт».
Пример в действии: Ссылка на внешний сайт.
При добавлении постфикса к внешней ссылке .f0ll0w или .n0f0ll0w, ссылка уже не трансформируется во внутреннюю, а остаётся внешней.
С постфиксом .f0ll0w ссылка передаёт вес сайту-реципиенту (аттрибут rel=«nofollow» не добавляется), а при добавлении постфикса .n0f0ll0w в структуру ссылки добавляется аттрибут rel=«nofollow».
Внешняя ссылка с постфиксом .f0ll0w
https://vk.com/mrcivic.f0ll0w
Результат: https://vk.com/mrcivic
, внешняя ссылка с постфиксом .n0f0ll0w
https://www.facebook.com/okatieff.n0f0ll0w
Результат: https://www.facebook.com/okatieff
Ссылки на другие страницы твоего сайта выглядят как внешние, но распознаются скриптом и он оставляет их в покое, то есть они передают вес и не закрыты файлом go.php, но если тебе нужно закрыть ссылку на другую страницу твоего блога в тексте, то ты можешь добавить уже известный постфикс .n0f0ll0w и эта ссылка получит в свою структуру аттрибут rel=«nofollow».
Обычная ссылка на другую страницу блога
https://okatiev.ru/tags/seo/
Результат: https://okatiev.ru/tags/seo/
, ссылка с постфиксом .n0f0l0w
https://okatiev.ru/tags/.n0f0ll0w
Результат: https://okatiev.ru/tags/
Обязательно сбрось кэш после всех манипуляций с файлами движка:
http://site.ru/?go=@sync
или так
http://site.ru/@sync/
Выводы
В качестве вывода можно сказать, что у нас получилась простая и удобная система управления ссылками в тексте при написании того или иного материала, которая позволяет грамотно распределять вес страниц блога и сделать твой сайт более SeoFriendly, чем он был до этого!
Надеюсь, что этот пост оказался полезным для тебя! Вопросы пиши в комментариях. До связи!