Делаем “свой TinyURL”
Прочитав пост “Как работает TinyURL” на прекрасном блоге очаровательной блондинки, решил поделиться своими взглядами на этот счет и предоставить небольшое руководство по созданию альтернативного варианта, так сказать “своего TinyURL”.
Рассматривать буду самый простой и быстрый вариант, выполняющий основную функцию – сокрытие большой ссылки (партнерской например) с редиректом по ней.
Внешний вид может быть, например: http://igorosa.com/go/abc.
Что для этого нужно?
1. Создаем папку в корне своего сайта (блога). Например папочку “go” как в примере выше. В принципе, папку можно не создавать, а разместить все в корне. Практической разницы нет, но как по мне, лучше держать в отдельной папке дабы не путаться среди существующих в корне файлов.
И так папку мы создали. Переходи к следующему этапу – созданию фала, который будет осуществлять редирект на требуемый нам адрес.
2. Создаем файл для осуществления редиректа.
Имя файла можно брать любое, но мы не будет извращаться и возмем стандартное – index.php
Далее у нас задача наполнить этот файл так, чтобы при его вызове осуществлялось перенаправление на требуемый адрес. Чтобы не повергать в страх непосвещенных в PHP читателей, я подготовил заготовку файлы. Скачать ее можно тут.
Теперь покажу, какие изменения необходимо произвести в заготовке, чтобы осуществлялось перенаправление на требуемый адрес.
В самом начале файла есть такие строки:
Приведенные ссылки заданы для примера, чтобы наглядно продемонстрировать правила их написания. Мы смело можете их изменять и добавлять свои. Главное следуйте указанному в примере синтаксису. Несоблюдение может привести к неработоспособности алгоритма.
Чтобы было понятнее поясню, что означают приведенные записи типа:
‘sape’ => ‘http://www.sape.ru/r.4db88c10f1.php’
‘sape’ – собственно и есть тот “abc” из примера в начале поста. Знак “=>” означает ассоциацию строки слева со строкой справа. Справа от знака указывается полная ссылка для перехода (‘http://www.sape.ru/r.4db88c10f1.php’).
И так файл создали, загрузили на хостинг, но что-то не работает и перехода нет. Для того, чтобы привести все в окончательный вид нам необходимо еще создать один файлик, который будет отвечать за правило преобразования короткой ссылки в длинную.
3. Создаем файл .htaccess
Хочу сразу обрать внимание, что точка в начале файла обязательна. Если вы забудете ее создать, то алгоритм не будет полноценно работать.
Создали файл, далее вписываем в него следующее:
RewriteEngine On
RewriteRule ^([/_0-9a-zA-Z-]+)$ index.php?id=$1
и сохраняем в ту же папку, где и лежит наш первый файлик index.php
Вот в общем то и все! Если вы сделали все без ошибок, то при переходе, например, по ссылке http://вашдомен.ру/go/sape будет осуществлен переход на http://www.sape.ru/r.4db88c10f1.php.
Если есть вопросы – готов ответить. Пишите.
Офигенно, заменяет всякие плагины вида ninja affiliate, бесплатно и все довольны.
Действительно очень полезная статья 🙂 Надо будет и себе сделать.
Всё сделал как написано, трижды перепроверил – не сработало
Значит все таки не все сделано правильно, так как описанная методика успешно работает на данном сайте!
И правда просто, дешево и сердито
Спасибо!
А поисковики не придерутся?
Поставлю чтобы такие ссылки не индексировались через robots.txt, но все равно как-то страшновато…
Пока поисковики все нормально кушают. Данный способ не является чем-то сверхестественным. Хотя, как говориться, пути Господне не исповедимы… Лучше конечно на всяк случай закрывать их от индексации.
а можно тоже самое но без php? Знаю, вопрос глупый, но все же…
и если да, то можно, чтобы было ваш_сайт.зона/abc
К сожалению, без использования php реализовывать не доводилось! Теоретически это возможно с помощью java script, но имеет ли это практическую ценность не уверен!
Все супер ! но тольео я так и не понял нужно ли это вообще ?!
всё прекрасно работает, супер
работает только с одной ссылкой.
Если не работает с многими ссылками, значит где-то допущена ошибка.
у меня нет ошибки. все проверил 100 раз и итог таков:
в файле .htaccess
RewriteRule ^([/_0-9a-zA-Z-]+)$ index.php?id=$1
отвечает за перенаправление с любого url на index.php
и не важно, написано или нет в index.php
$path = array(
‘oservice’ => ‘http://www.kitzmann.ru/oservise.php’,
‘home’ => ‘index.php’
);
Визуально ошибок нет. Что удивительно, только проверил работоспособность у себя. У меня почему-то вообще перестал работать. Возможно что-то поменялось на уровне сервера, так как перезжал на новый ВПС. Буду разбираться…