Делаем “свой 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.

Если есть вопросы – готов ответить. Пишите.

IgorOsa

 

15 комментариев

  1. z0r:

    Офигенно, заменяет всякие плагины вида ninja affiliate, бесплатно и все довольны.

  2. Spoofi:

    Действительно очень полезная статья 🙂 Надо будет и себе сделать.

  3. z0r:

    Всё сделал как написано, трижды перепроверил – не сработало

    • IgorOsa:

      Значит все таки не все сделано правильно, так как описанная методика успешно работает на данном сайте!

  4. Заводской раб:

    И правда просто, дешево и сердито

  5. Ильдар:

    Спасибо!

    А поисковики не придерутся?
    Поставлю чтобы такие ссылки не индексировались через robots.txt, но все равно как-то страшновато…

    • IgorOsa:

      Пока поисковики все нормально кушают. Данный способ не является чем-то сверхестественным. Хотя, как говориться, пути Господне не исповедимы… Лучше конечно на всяк случай закрывать их от индексации.

  6. DjGlobal:

    а можно тоже самое но без php? Знаю, вопрос глупый, но все же…
    и если да, то можно, чтобы было ваш_сайт.зона/abc

    • IgorOsa:

      К сожалению, без использования php реализовывать не доводилось! Теоретически это возможно с помощью java script, но имеет ли это практическую ценность не уверен!

  7. Евгений:

    Все супер ! но тольео я так и не понял нужно ли это вообще ?!

  8. вовка:

    всё прекрасно работает, супер

  9. Алексей:

    работает только с одной ссылкой.

    • IgorOsa:

      Если не работает с многими ссылками, значит где-то допущена ошибка.

      • Алексей:

        у меня нет ошибки. все проверил 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’
        );

        • IgorOsa:

          Визуально ошибок нет. Что удивительно, только проверил работоспособность у себя. У меня почему-то вообще перестал работать. Возможно что-то поменялось на уровне сервера, так как перезжал на новый ВПС. Буду разбираться…

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.