Делаем “свой 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 thoughts on “Делаем “свой TinyURL”

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

  1. Спасибо!

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

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

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

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

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

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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