Делаем “свой 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 для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

%d такие блоггеры, как: