САЙТОСТРОЙ.РУ

Разработка сайта любой сложности собственными силами - такова задача создателей сайта. Представлены лучшие советы вебмастеров, образцовые технические задания, бесценный опыт веб-мастеринга и советы в области безопасности сайтов, новые технологии веб, инструменты продвижения сайтов. Теперь создание сайтов не будет для Вас загадкой!

Построй свой сайт!

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


Сокращение числа внешних ссылок - задача не только экономическая (продажа ссылок на Вашем сайте), но и задача безопасности данных. Дело в том, что, переходя по ссылке с Вашего сайта, браузер передает заголовок HTTP_REFERER, который содержит URL адресующей страницы. А в этом URL могут содержаться идентификаторы пользователя или другие данные, раскрывать которые по возможности не хотелось бы. Некоторые неблагонадежные сайты могут попытаться использовать XSS-атаки, будучи открыты с Вашего сайта.

Поле HTTP_REFERER
Пример. Скрипт text_src.php имеет ссылку на скрипт text_dst.php. Приведен вывод функции phpinfo() для скрипта text_dst.php, открытого по ссылке с text_src.php

Для вебмастеров, зарабатывающих на продаже рекламных ссылок, большая проблема - число внешних ссылок непосредственно в публикациях сайта. Не хочется лишать посетителя удобства перехода по активным ссылкам. Эта проблема легко решается приведенным в этой статье способом подмены ссылок.

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

Итак, для того, чтобы обеспечить автозамену ссылок, нам потребуется:

  1. в коде отображения текста нужно заменить внешние ссылки на внутренние, на наш скрипт, который будет переадресовывать по внешним;
  2. в зависимости от того, используются ли на сайте "красивые адреса", возможно, потребуется добавить шаблон переадресованных страниц;
  3. написать скрипт, непосредственно выполняющий переадресацию.

Как Вы заметили, есть радостная новость: не требуется переработки системы администрирования, да и движок сайта нужно будет обновить лишь в месте вывода кода страницы. Но есть и еще одна хорошая новость: процедура преобразования URL ссылки выполняется в одну строчку кода:

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

Таким образом, если в коде встретится фрагмент

<a href="http://saytostroy.ru">сайтострой</a>

то он будет заменен на:

<a href="/loc/saytostroy.ru" target="_blank">сайтострой</a>

Переадресация на другой сайт
Переадресация на другой сайт по внутренней ссылки на уровне протокола HTTP

Теперь нужно обеспечить обработку ссылок вида "/loc/url". Для этого пропишем его в файле .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
    {
        
    }
?>


САЙТОСТРОЙ.РУ - практикум создания сайтов для каждого

Просим с уважением относиться к авторам сайта и при копировании документов указывать ссылки на наш сайт.