Перейти к содержимому



Php редирект для перенаправления внешних ссылок

#1 Ixman
Ixman
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844
5

Отправлено 14 Апрель 2014 - 18:33

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

 

 

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

 

Итак, само решение выглядит так:

<?php
$url = htmlentities($_GET["to"], ENT_QUOTES, "UTF-8");
if (filter_var($url, FILTER_VALIDATE_URL)) {
header('Refresh: 10; URL=' . $url . ''); ?>
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Переадресация на официальный сайт</title>
<meta charset="utf-8" />
<meta name="robots" content="noindex,nofollow" />
</head>
<body>
«Переадресация на официальный сайт»
</body>
</html>
<?php } else {
header ("Location: /404.php");
}
exit;
?>

​Этот код сохраняем, например, в файл out.php и закидываем его в корень сайта. Затем URL для переадресации прописываем таким вот способом:

http://your-domain.ru/out.php?to=http://some-URL.ru

Это самый простой пример использования данного файла. Можно закинуть его, например, в папку go, или же это папку можно создать виртуально средствами mod rewrite и файлом настроек сервера .htaccess

 

И ещё самое важное замечание, URL для переадресации нужно прописывать именно с http, так как указано на примере. Иначе редиректа не будет

 

 

 

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

 

Если кому-то нужно будет подробно прокомментировать код файла редиректа или вдруг возникнут ещё какие-то вопросы, то буду рад ответить  :)

Прикрепленные изображения

  • loader.gif

 

 

Сообщение отредактировал BLIK: 25 Август 2017 - 13:17
подправил код

  • 2


#2 Renovatio
Renovatio
  • Неактивные
  • 209 сообщений
  • Репутация: 5

Отправлено 11 Сентябрь 2014 - 21:02

http://your-domain.ru/out.php?to=http://some-URL.html

 

 

 То есть, это все готовые ссылки нужно заново переписать? Или как вы предлагаете?

куда этот кусок кода должен пойти?


  • 0

#3 Ixman
Ixman
    Topic Starter
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844

Отправлено 12 Сентябрь 2014 - 13:33

Кусок кода это файл переадресации, его нужно сохранить отдельно в файл out.php в корень сайта согласно нашего примера. Ну а ссылки уже либо руками перебивать, либо скриптом. Всё зависит от ваших знаний.


  • 1


#4 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 21 Октябрь 2014 - 20:04

Очень хорошо рассказано, попробую ваш метод)


  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#5 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 21 Октябрь 2014 - 21:23

Если не сложно расскажите подробнее про скрипт и как прикрепить счетчики? Больше интересует скрипт


Сообщение отредактировал Sosnovskij: 24 Октябрь 2014 - 22:34

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#6 Ixman
Ixman
    Topic Starter
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844

Отправлено 21 Октябрь 2014 - 22:07

Весь скрипт в первом посте, вам нужно только скопировать код и сохранить его в файл. Счётчики можно разместить в сам скрипт


  • 0


#7 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 22 Октябрь 2014 - 01:20

Ixman, А прописывая так ссылку можно указывать атребут rel="nofollow" ?

 

Кстати на этом форуме используется тоже такой редирект?

 

P.S. Спасибо вам за внимание!!!


Сообщение отредактировал Info-Mans: 22 Октябрь 2014 - 01:21

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#8 Ixman
Ixman
    Topic Starter
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844

Отправлено 22 Октябрь 2014 - 09:46

Ссылка будет считаться внутренней, а для них не рекомендуется указывать данный параметр. Оптимально редирект закрыть через robots.txt


  • 0


#9 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 22 Октябрь 2014 - 10:53

Ixman, Он полностью скрывает ссылки? Или он просто превращает их во внутрение?

 

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

 

P.S. Простите за назойливость.


  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#10 Ixman
Ixman
    Topic Starter
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844

Отправлено 22 Октябрь 2014 - 15:42

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


  • 0


#11 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 22 Октябрь 2014 - 22:18

Ixman, Тоесть получается что вес страницы все равно теряется? или эта ссылка становиться как внутренняя и вес переходит на ссылку с редиректом (http://site.ru/go.php) ?


Сообщение отредактировал Info-Mans: 22 Октябрь 2014 - 22:19

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#12 Info-Mans
Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 125

Отправлено 22 Октябрь 2014 - 22:37

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

Очень познавательная статья и интересная, прочитал до конца.

 

Подскажите, чем лучше воспользоваться для сайта, на котором партнерские ссылки, (в продвижение в ПС, особенно для Яши) редиректом как в этой статье или лучше скрыть их полностью как в этой теме ??


Сообщение отредактировал Info-Mans: 22 Октябрь 2014 - 22:38

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#13 Ixman
Ixman
    Topic Starter
  • Пользователь PRO
  • 3 171 сообщений
  • Репутация: 844

Отправлено 23 Октябрь 2014 - 15:14

Info-Mans, лучше скрыть их полностью, тем более от партнёрки. Вообще ссылаться полезно на трастовые ресурсы, а на всякое барахло не стоит 


  • 0


#14 cloudopia
cloudopia
  • Пользователь
  • 11 сообщений
  • Репутация: 1

Отправлено 27 Октябрь 2014 - 15:38

Все зависит от того, как сайт организован изнутри. Предположим, есть табличка partners со списком партнерок, В табличке достаточно двух полей: уникальный идентификатор id и собственно ссылка url. Понадобится простой php-скрипт, которому передается ссылка типа - например, partner.php?id=<id>.

 

Этот скрипт шерстит базу через pdo и непременно запросы с параметрами, чтоб инъекций не было 

$sql="select * from partners where id=:id"$result = $this->db->prepare($sql);
$result->execute(array("id"=$_GET['id']));
$list = $result->fetchall(\PDO::FETCH_ASSOC);
$partner = $list[0]; // <- нашли партнера
header("location: ".$partner['url']); // ну и переходим 
Конечно, тут надо еще обрабатывать ситуации, когда партнерки может не быть, то бишь в таблице нет записи с этим id (к примеру, старая, удалена уже, но ссылка в тексте где-то осталась) - в этом случае $list будет null и переходить надо на страничку с ошибкой.
Ну и о защите подумать, примерно так - при открытии статьи с партнерскими ссылками пишется некая сессионная переменная. Скрипт перехода проверяет, есть ли переменная; если есть переходит. А если нет, то скрипт сигнализирует - типа кто-то пытается переходить по вашим ссылкам напрямую без чтения статьи (можно например, переходить на обзорную статью, в которой используется эта ссылка, но все это усложнит скрипт). 
 
Еще можно всякие интересные фишки делать - скажем, вести собственный счетчик популярности партнерок (при каждом щелчке увеличивать на единичку значение некоего числового поля), Сделать удобным процесс перехода - пусть юзер переходит в два этапа: на первом красивое окошко появляется с текстом типа "вы собираетесь покинуть наш сайт и перейти на такой-то сайт, согласны?" В окошко еще рекламу пихнуть какую-нибудь. Либо ограничивать доступ к каким-то партнеркам не зарегистрированным пользователям - редирект на страницу регистрации. Ну и т.д. от вашей собственной фантазии зависит уже. 

  • 0

#15 kolver
kolver
  • Пользователь
  • 93 сообщений
  • Репутация: 5

Отправлено 19 Ноябрь 2019 - 17:03

Апну тему:

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

И далее, перечислены страницы со скриптом перенаправления: http://your-domain.ru/out.php?to=
Может кто подскажет как там прописать метатег Description?


  • 0

#16 BLIK
BLIK
  • Супермодератор
  • 4 617 сообщений
  • Репутация: 1061

Отправлено 19 Ноябрь 2019 - 17:08

@kolver,Может закрыть страницу редиректа от индекса, например так:

Disallow: /out/

или так, если больше нет страницу с окончанием.php 

Disallow: /*.php 

И потом проверить в вебмастере правильно запрет поставлен и закрывет ли он такие url 


  • 3

Качественный хостинг   Тут может быть ваша ссылка.



#17 kolver
kolver
  • Пользователь
  • 93 сообщений
  • Репутация: 5

Отправлено 19 Ноябрь 2019 - 17:13

@BLIK, О-о большое спасибо! У меня на одном сайте точно так закрыто и там все нормально, а на другом я просто забыл закрыть)). И не пойму, почему на одном идут предупреждения, а на другом все чисто. Еще раз спасибо!


  • 0

robot
robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
FIvYUr FIvYUr 1-й за Декабрь
Очков активности: 2 062 0 тем, 125 сообщений, 11 баллов репутации
Сайт: moy-evroopt.ru
ТОП самых активных за этот месяц
  • Фотография albedo
    #1

    albedo (online24news.ru)
    Очков активности: 756 5 тем, 69 сообщений, 6 баллов репутации

  • Фотография Totti
    #2

    Totti
    Очков активности: 472.5 2 темы, 29 сообщений, 9 баллов репутации

  • Фотография Bilish
    #3

    Bilish
    Очков активности: 147 20 тем, 38 сообщений, 1 балл репутации

  • Фотография BLIK
    #4

    BLIK
    Очков активности: 85.5 Вне конкурса за определение пользователя месяца

  • Фотография Vmir
    #5

    Vmir
    Очков активности: 51 0 тем, 17 сообщений, 2 балла репутации

  • Фотография ShowPrint
    #6

    ShowPrint (ShowPrint.ru)
    Очков активности: 48 0 тем, 8 сообщений, 4 балла репутации

  • Фотография Santey
    #7

    Santey
    Очков активности: 42 4 темы, 16 сообщений, 1 балл репутации

  • Фотография NataliaAntalia
    #8

    NataliaAntalia (zdorovemedicina.ru)
    Очков активности: 40.5 Вне конкурса за определение пользователя месяца

  • Фотография Megoydagi
    #9

    Megoydagi (24ho.ru)
    Очков активности: 33 3 темы, 13 сообщений, 1 балл репутации

  • Фотография MattCutts
    #10

    MattCutts (dmitrylee.ru)
    Очков активности: 24 Вне конкурса за определение пользователя месяца

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 27.12.2019
  • Яндекс выдача: 19.01.2020
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru