Улучшенные ссылки для Эгеи

Изменяем механизм интерпретации 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

Сохрани и закрой файл 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, чем он был до этого!

Надеюсь, что этот пост оказался полезным для тебя! Вопросы пиши в комментариях. До связи!

Плюсануть
Поделиться
Отправить
Запинить
Понравился этот пост? Поделись им в соцсети!
Популярное
Ваш комментарий
адрес не будет опубликован
HTML-код не интерпретируется

Ctrl + Enter