Редиректор / redirect FAQ. Вроде и нужна ссылка, но не прямая...

content
На сайте с 23.01.2006
Offline
103
592

Слишком часто задают этот вопрос. Мне проще один раз написать и часто ссылаться. :)

Если вам нужно держать на сайте внешнюю ссылку, но внешней ссылке нужен трафик, а не ссылочное. Короче, как убрать лишние внешние ссылки, сделав их локальными.

1. Пишем скрипт и называем его redir.php.

Когда нам надо добавить ссылок, вставляем строки "алиас" => "ссылка в массиве",


<?
$yoursite = "морда вашего сайта, типа http://ya.ru";
header ("Cache-control: no-store, no-cache, must-revalidate");
header ("Pragma: no-cache");
$link = $_REQUEST["link"];
// набираем нужный массив алиасов - ссылок
$links = array (
"ssilka1" => "http://www.ssilka1.ru",
"ssilka2" => "http://www.ssilka2.ru",
"ssilkaN" => "http://www.ssilkaN.ru",
);

if (array_key_exists ($link, $links)) {
header ("Location: ".$links[$link]);
die();
} else {
header ("Location: ".$yoursite);
die();
}
?>

2. Прописываем rewrite rules.

Для тех кто не знает, что это такое, как и куда прописать, просьба сначала погуглить.

Код приведен для httpd.conf и .htaccess.

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


<Directory /your_local_directory_from_root_server_no_trailing_slash>
RewriteEngine on
RewriteBase /
RewriteRule ^redir/([0-9a-zA-Z]*)$ redir.php?url=$1
</Directory>

3. Прописываем ссылочки на сайте:


<a href="/redir/ssilka1">текст ссылки</a>
<a href="/redir/ssilka2">текст ссылки</a>
<a href="/redir/ssilkaN">текст ссылки</a>

Для тех, кто писал в httpd.conf нужно проверить конфиг:

/path_to_apache/bin/apachectl configtest

и если syntax ok, то:

/path_to_apache/bin/apachectl restart

Для тех, кто писал в .htaccess, и что-то не работает, проверьте, что провайдер позволяет вам управлять сайтом в .htaccess, например для вашей директории установлено AllowOverride All. Если это не так, потревожьте провайдера.

Во втором пункте стоит рега (regular expression) для цифр, и больших и маленьких английских букв. Можно менять на свое усмотрение.

Что получаем по итогу - внешние ссылки обработанные таким образом, становятся локальными.

GFF
На сайте с 18.09.2006
Offline
38
GFF
#1
content:
Если вам нужно держать на сайте внешнюю ссылку, но внешней ссылке нужен трафик, а не ссылочное. Короче, как убрать лишние внешние ссылки, сделав их локальными.

Подскажите, а чем этот метод лучше по сравнению с noindex и nofollow?

content
На сайте с 23.01.2006
Offline
103
#2
GFF:
Подскажите, а чем этот метод лучше по сравнению с noindex и nofollow?

Это внутренние ссылки, их можно не брать в невалидный <noindex>.

А rel="nofollow" - да пожалуйста.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий