В этой статье расмотрим установку и настройку редиректа на PHP. Для каждого сайта, особенно молодого, стоит необходимость оптимизации сайта. Одним из первых пунктов должно быть уменьшение внешних ссылок со страниц сайта.

Для этого возможно использовать редирект, который должен переобразовывать внешние ссылки во внутренние.

Редирект будет исполняться через файл php, базовое название файла go.php, таким его и оставим.

Важно. Для создания файла нужно использовать блокнот NotePad++ .

Открываем чистый файл .txt в NotePad++ и вставляем этот код, нажимаем Кодировка UTF-8 без BOM и сохраняем.

< meta http-equiv="content-type" content="text/html; charset=UTF-8">
Вы покидаете сайт CashOffice.ru
< ? php
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
if(preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
sleep(0);
//header("Location: $url");
echo "";
exit();
}
? >

Вместо надписи Вы покидаете сайт vashsait.ru можна, написать все что хотите.

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

Загружаем файл go.php в корень Вашего сайта.
В файле robots.txt перед строкой Host: вставляем вот это, что поможет закрыть php файл от индексации.

Disallow:/go.php

Все редирект готов. Теперь в нужном месте статьи вставляем этот код для вывода редиректа:

< a href="http://vashsait.ru/go.php?url=http://drugoysait.ru">http://drugoysait.ru< /a>

Данный редирект использует задержку в размере 2 секунды, что бы пользователь мог прочитать текст .

Если задержка и воспроизведение текста не нужны, то можно использовать данный код:

< meta http-equiv="content-type" content="text/html; charset=UTF-8">
< ? php
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
if(preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
//header("Location: $url");
echo "";
exit();
}
?>

И редирект делается без задержек.

Пример редиректа : http://yandex.ru/

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

Вскоре я напишу статью о другом способе обработки внешних

ссылок, и что бы получить ее сразу, можете подписаться на RSS или на E-mail.

Отзывов (6)


Хотите прокомментировать?

Комментарии RSS ?

“Для каждого сайта, особенно молодого, стоит необходимость оптимизации сайта. Одним из первых пунктов должно быть уменьшение внешних ссылок со страниц сайта.”

Скажите это создателю Википедии или любого другого нормального проекта, пусть он посмеется. :)

“sleep(2)”

Очень плохо так делать. Оно подвешивает процесс в Апаче.

И вообще у вас какая-то странная рега, а зачем пустой вывод, а где обработка исключений, а к чему тут вообще UTF-8 для русских сайтов без полноценной его поддержки в PHP 5.x … да и скрипт сам по себе не рабочий. Вы в PHP-то разбираетесь, или это просто копипаст? Там же сам код редиректа закомментирован в обеих примерах. :)

Удачи!

9 августа 2010 22:25

1. Этот редирект пригодится , для тех сайтов, у которых очень много внешних ссылок, для их уменьшения
ставится редирект.
Не вижу смысла в сравнении с Вики.
2. Кодировка UTF-8 выбрана , потому что, это кодровка WORD Press.
3.По поводу sleep , в данном редиректе он есть , Вы можете не использовать .
4.У меня работает, в статье Robots.txt я использовал этот редирект.

10 августа 2010 9:17

1. А чем именно плохи внешние ссылки? :)

2. Вот простой пример неработоспособной ссылки из-за неверной обработки UTF-8: cashoffice.ru/go.php?url=http://yandex.ua/yandsearch?text=тест&lr=0

3. Просто это небезопасно, лучше уж сразу без него. ИМХО.

4. Посмотрите внимательней, в текущем коде на странице, сейчас header-ы закомментированы (//header(“Location: $url”);)

Всего хорошего. :)

10 августа 2010 14:05

Лишние внешние ссылки нужно закрывать при продаже ссылок.
Например на блоге seogramota.ru
используется редирект , в виде /goto/.

cashoffice.ru/go.php?url=http://yandex.ua/yandsearch?text=тест&lr=0
Данная ссылка работает, просто
ссылка не верная , она имеет кирилицу, поэтому выдает Синтаксическая ошибка.

10 августа 2010 15:01

“Лишние внешние ссылки нужно закрывать при продаже ссылок.”

А, ну в таком случае, все верно на 100%, тут не поспоришь. :)

“просто ссылка не верная”

Да ну:

yandex.ua/yandsearch?text=тест&lr=0

li.ru/go?http://yandex.ua/yandsearch?text=тест&lr=0

тоже не работает? :)

10 августа 2010 20:35

Может быть, скрипт не понимает кирилицы. Исправим.

Но этот редирект ,я использовать не планирую.
Есть плагин , который намного легче и удобнее использовать , скоро опишу в блоге.

10 августа 2010 21:59

Комментарии закрыты.