PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
Календарь
Январь (2021)
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
    • Возможно с течением времени этот...
  • TOP-5

    • Метод POST (2939570)
    • Привет, МИР! (906979)
    • Метод GET (661683)
    • Операторы (601627)
    • Firefox уже запущен, но не отвечает... (346896)

Как сделать редирект (redirect) ссылок на сайте.

Главная » Уроки PHP » Как сделать редирект (redirect) ссылок на сайте.
PHP урок № 281

Редирект (redirect) ссылок.

Что такое редирект ссылок?
По сути своей, это перенаправление куда либо, скажем на ту страницу которая нужна. Пример который я опишу в этом уроке сводится к тому, чтоб повысить значимость вашего сайта в поисковой системе. Это не есть панацея к вершинам TOP 10, но и не пустяк с точки зрения оптимизации сайта.
На всё про всё предлагается два небольших кода. Осуществим задуманное с помощью функций кoдировки URL, встроенной в PHP rawurlencode() и ещё одной функции rawurldecode(), так же нам потребуется гвоздь нашего приложения функция header(). Допустим у вас есть ссылки на сайте, которые ведут на другие интернет ресурсы не принадлежащие вам. Это могут быть ссылки на закачку файлов с какого-то файлообменника (Rapidsharе) или же вы ссылаетесь на чей-то сайт в качестве примера, вариантов много. В процессе этого поисковый робот обходя ваш сайт уходит с него на другой ресурс. Тем самым, возможно не успев просмотреть все новости появившиеся на вашем сайте. В результате чего, новая статья или целый новый раздел не попадёт в индекс поисковой системы и не сможет быть представлен для выбора, пользователю по его запросу. Снижается так же значимость (вес) вашего сайта, чем больше вы отдаёте ссылок на другие ресурсы. В идеале, лучше чтоб вас чаще цитировали.
rawurlencode

string rawurlencode (string str)

Возвращает строку, в которой неалфавитно-числовые символы, кроме

-_.

заменены на знак процента (%) с последующими двумя 16-ричными цифрами. Это кодирование, описанное в RFC1738, защищает литеральные символы от интерпретации в качестве специальных разграничителей URL и защищает URL'ы от изменения при передаче с конвертацией символов (как в некоторых email-системах). Например, если вы хотиет включить пароль в FTP URL

phpclub
rawurldecode

rawurldecode - декодирует URL-кодированные строки.
Описание

string rawurldecode (string str)

Возвращает строку, в которой последовательности из знака процентов (%) и последующих двух 16-ричных цифр заменяются литеральными символами. Например, строка

foo%20bar%40baz

декодируется в

foo [email protected]

phpclub
header

(PHP 3, PHP 4)

header - отправляет "сырую" HTTP-шапку/header.
Описание

int header (string string [, bool replace])

header() используется для отправки необработанных HTTP-шапок. См. в спецификации HTTP/1.1 информацию о HTTP headers.

Oсобый случай это "Location:" header. Здесь header не только отсылается обратно браузеру, но также возвращается статус-код REDIRECT (302), если только какой-нибудь 3xx статус-код не был уже установлен.

header("Location: http://www.example.com/"); /* Redirect browser */
exit; /* Убедитесь, что последующий код не
выполняется, когда мы перенаправляем. */

Примечание: HTTP/1.1 требует абсолютного URI в качестве аргумента для Location: включая схему, имя хоста и абсолютный путь, но некоторые клиенты принимают относительные URI. Как правило вы можете сами использовать $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] и dirname() для создания абсолютного URI из относительного:

header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);


phpclub
Оставить сайт совсем без ссылок не всегда удаётся, я бы сказал, за редким исключением удаётся не ссылаться на что либо. Сделать нужно следующие, если ваш сайт имеет какой то движок думаю там с этим проблем не будет (уже "писатели" позаботились), а если вы пишите сами, то прежде чем выставлять ссылку на сайт она должна быть обработана скриптом который вставит её в другую ссылку, ведущую на redirect файл.
Для начала ссылку надо закодировать, чтоб она корректно передалась обработчику, назовём этот файл red.php

Листинг № 1 - Кодируем ссылку для передачи скрипту обработчику.

<?php
$url 
= "http:⁄⁄rapidshare.com/files/348752524/Denwer.zip.html";
$url = rawurlencode($url);
echo 
"<a href=red.php?url=$url>Скачать Denwer 3 + расширения.</a>";
?>
Пример ссылки которая выводится на страницу сайта:
<a href=red.php?url="http://rapidshare.com/files/348752524/Denwer.zip.html">Скачать Denwer 3 + расширения</a>
Реальный вид:
Скачать Denwer 3 + расширения
После нажатия на эту ссылку пользователь окажется на странице загрузки файла, с сайта Rapidshare, но реально он будет перенаправлен (redirect) туда с помощью функции header() и тем самым "паук" остановиться на сайте, для дальнейшего просмотра страниц.

Листинг № 2 - Файл обработчик red.php

<?php  
$g 
=  rawurldecode($_GET['url']);
header("Location: $g");
?>

Урок закончен

SETTER © LPHP.RU
Администрация сайта
10.02.2010 16:11:49

Обсудить на форуме.
Понравился урок? Не пропусти следующий!
Рекомендованные уроки этого раздела:
  • Капча (captcha)
  • Редактор vi в UNIX, Linux
  • Передвигаем картинку. Двигаем рисунок.
  • Zend Framework 2 установка

Напишите свой комментарий
Ваше имя
Сообщение
Введите цифры с картинки:
 

Комментарии

Алёна 27.08.2010 22:56:31
Большое спасибо, даже не подозревала, что так вот просто.
Малёк 24.04.2012 07:20:28
Как Правильно сделать для скачивания с депозитфайлс, при клике на ссылку человек не сразу попадает на депозит, а на специально созданную страницу, а уже после определенного промежутка времени посетитель перебрасывается на сам депозит.
сева 24.04.2012 16:27:20
Надо указать прямую ссылку на файл.
  • Яндекс.Метрика Здесь находится аттестат нашего WM идентификатора 185571665285
  • "LPHPRU" © 2009-2021