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