Блог \ Полезные мелочи на PHP и jQuery \ Редирект внешних ссылок

Редирект или как закрыть внешние ссылки от индексации?

Для чего нужен редирект?

У каждой страницы сайта есть определенный вес (рейтинг) среди поисковых систем. Чем выше этот рейтинг, тем выше сайт в поисковой выдаче по определенным поисковым запросам. Чем больше сайтов ссылаются на ваш, тем больше вес вашего сайта, но если вы ссылаетесь на другие сайты, то вы отдаете вес своей страницы. Так вот, чтобы этот вес не раздавать на право и на лево, давайте создадим файл который будет перенаправлять посетителя на другой сайт.

Принцип работы редиректа

Все достаточно просто. Мы будем передавать внешнюю ссылку методом GET.

Создаем файл который будет обрабатывать внешнюю ссылку

Назовем его: exit.php

Код наверно даже комментировать не надо все и так понятно.... но если бы я изучал PHP всего неделю, я бы нифига не понял... так что разжую по порядочку!

Кстати.. ссылку мы теперь будем писать так:

<a href="exit.php?url=http://google.com">www.google.com</a>

т.е. просто указываем ссылку на файл exit.php и в качестве параметра методом GET передаем URL.

if($_GET['url'])
if($_GET['url'])
	{
		$url = $_GET['url']; // 
		if (!$url) // Если по какимто причинам $url оказалась пустой, редиректим на главную страницу сайта
		{
			$url = 'http://makannikov.ru';
		}
		if (!preg_match('#(https?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)) 
		{
			exit ("<p>Неверный формат запроса! Проверьте URL!</p>");
		}
		
	
	
		header("Location:$url"); // перенаправляем по анешней ссылке
		exit();
	}

Ну вот и все, такой вот простенький скрипт который закрывает от индексации внешние ссылки!

ОЙ, ой.... Чуть не забыл, файл exit.php нужно закрыть от индексации с помощью файла robots.txt.

Создаем файл robots.txt и просто пишем в него эту строку:

Disallow: /exit.php

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

Во второй части урока мы создадим регулярку, с помощью котрой будем автоматически подставлять к ссылке "exit.php?url=". 

Часть 2 > Автоматическая замена внешних ссылок на внутренние

Метки: редирект, внешние ссылки, закрыть внешние ссылки от индексации,

Алексей

Если сылка  например http://mosara.ru/?rev=6&page=11&cat=1 

Ваш скрипт перенаправит на   http://mosara.ru/?rev=6

а не на   http://mosara.ru/?rev=6&page=11&cat=1 

Андрей

Алексей, Вы правы. Я с этим тоже столкнулся, но добавить изменения в эту статью забыл.

Для того чтобы, в нашу переменную попал полный адрес (http://mosara.ru/?rev=6&page=11&cat=1) нужно сделать так:

$url = str_replace('url=',' ',$_SERVER['QUERY_STRING']);

В результяте переменная $url будет равна: http://mosara.ru/?rev=6&page=11&cat=1

И далее делаем редирект.

В суперглобальный массив $_SERVER['QUERY_STRING']) попадает все что находится после знака ?.

Monochrome

Такое решение повлечёт за собой дополнительную нагрузку на сервер.
Почему бы не использовать js для сокрытия ссылок от индексации как тут: http://rutext.net/ 

Ваши комментарии!

Имя:*


Email:*


Email:*

Не будет показан

Текст:*



Немного о нас

Да, действительно теперь я не один. В моей команде работают несколько программистов, дизайнер и отличный SMM специалист.

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

*/ ?>

Пишите!