Многие из Вас слышали про сервисы сокращения URL . В этом материале я решил рассказать, как это можно реализовать у себя на сайте. Где это может быть нужно? Например, если Вы где-нибудь в книге вставите ссылку, затем эту книгу распространите, а после Вам потребуется исправить адрес этой ссылки. Вот эту задачу мы сей...

Сокращение URL-адреса на PHP

Многие из Вас слышали про сервисы сокращения URL. В этом материале я решил рассказать, как это можно реализовать у себя на сайте. Где это может быть нужно? Например, если Вы где-нибудь в книге вставите ссылку, затем эту книгу распространите, а после Вам потребуется исправить адрес этой ссылки. Вот эту задачу мы сейчас с Вами и решим.

Для начала надо создать INI-файл с псевдонимами и соответствующим им адресами (shortlinks.ini):

myrusakov=http://myrusakov.ru
mail=http://mail.ru

Теперь создадим файл r.php, который и будет заниматься редиректами:

<?php
  $shortlinks = parse_ini_file("shortlinks.ini"); // Получаем массив данных из INI-файла
  if(isset($_GET["r"]) && array_key_exists($_GET["r"], $shortlinks)) { // Если передан правильный GET-параметр
    header("Location: ".$shortlinks[$_GET["r"]]); // Делаем редирект
    exit; // Завершаем скрипт
  } else {
    header("HTTP/1.0 404 Not Found"); // Если GET-параметра нет, или он отсутствует в INI-файле, то возвращаем 404
    echo "Error"; // Выводим ошибку
  }
?>

Теперь при переходе по такому адресу "http://mysite.ru/r.php?r=mail" будет сделан редирект на mail.ru. Однако, этот адрес не является красивым. Чтобы улучшить его внешний вид, можно воспользоваться .htaccess и модулем mod_rewrite:

RewriteEngine on
RewriteRule ^.*r/(.*)$ r.php?r=$1

Теперь Вы можете везде вставлять ссылку вида "http://mysite.ru/r/mail", а если вдруг Вам потребуется изменить её направление, то просто исправляете INI-файл.

Вот таким образом можно легко и быстро сделать сокращение URL-адреса на PHP.