САЙТОСТРОЙ.РУ
Построй свой сайт!

Как сократить число внешних ссылок на сайте

опубликовано 05.09.2014

В целях поисковой оптимизации или для продажи ссылок через биржу бывает нужно убрать ссылки на посторонние сайты. Это можно достаточно легко сделать, установив переадресацию со своего сайта. Причём, это можно сделать в автоматическом режиме: включить в движок сайта функции замены при выводе HTML-кода ссылок на скрипт переадресации.

Если в переменной $text содержится HTML-код, функция автозамены будет следующей:

$text=preg_replace("!<a[^>]*shref="?http://([^>"#s]+)"?[^>]*>!is","<a href="/loc/$1" target="_blank">",$text);

Как видим, функция заменила URL на /loc/URL без "http://", чтобы не нарушать формат URL. Теперь нам нужно сделать обработку таких URL (начинающихся с /loc/). Для этого в случае веб-сервера Apache нужно добавить в файл .htaccess следующее:

RewriteEngine On
RewriteRule ^loc/.*$ /reloc.php

Теперь все подобные адреса будет обрабатывать наш скрипт reloc.php. Вот его код:

<?
$uri=urldecode($_SERVER["REQUEST_URI"]);
if(ereg("loc/(.+)",$uri,$regs))
{
   $to=$regs[1];
   header("Location: http://${to}");
}
else
{
  // некорректная ссылка
}
?>

Скрипт перенаправит посетителя на новый адрес с кодом 302 HTTP. Посмотрим на примере:

перенаправление пользователя

Если Ваш движок не позволяет вторгаться в его внутренний мир, попробуйте воспользоваться функциями PHP ob_start() и ob_get_clean(). Первую нужно задать перед любым выводом, а вторую в конце. Получив буферизированные данные на вывод из ob_get_clean(), произвести замену и самостоятельно осуществить вывод.

теги: apache, .htaccess, seo

Комментарии и вопросы

Статью никто не комментировал.


Задать вопрос или оставить комментарий

Ваше имя:
Комментарий:
Код с картинки справа:=


Просим с уважением относиться к труду автора сайта и при копировании документов указывать ссылки на http://saytostroy.ru.