Скрипт короткие ссылки на php и mysql - сокращение url

Для чего короткие ссылки - бывает пригождается на форумах, чате, блогах, и других коммуникативных сервисах, и чтобы не заполонять пол сообщения длинной ссылкой, сервис короткие ссылки укорачивает ссылку до мизерных размеров.

Это скрипт предназначен для переадресации с длинного uri на короткий с установленными выбранными функциями.

Скачать скрипт короткие ссылки на php sql

php5,6 и ниже
php5.6 и выше, лучше 7
Демо пример (временно не доступно)

Что умеет скрипт короткие ссылки:

Конфиг скрипта, пример.

# index.php: V3.0
if (false) { ini_set('display_errors',1); error_reporting(E_ALL | E_STRICT); } else { ini_set('display_errors', 0); error_reporting(0); } # Отладка (false - вык., true - вкл.)
setlocale(LC_TIME, "ru_RU.utf8");                                     # Кодировка желательна utf-8 
date_default_timezone_set('Europe/Moscow');                           # Временная зона
$_CONFIG['INF_DOMAIN'] = array( 'https://domain1.com' => '',          # Список доменов для переадресации,  и его префикс (дополнительно указывается в ручную в .htaccess)
                                'https://domain2.net' => '*',       
                                'https://domain3.ru' => '-' );
$_CONFIG['LOG_ERRORS'] = 1;                                            # Лог ошибок введенных данных в форме
$_CONFIG['PASSWORD_ONOFF'] = 0;                                        # пароль Front-end включить/выключить 1/0
$_CONFIG['PASSWORD'] = '5825';                                         # пароль Front-end
$_CONFIG['PSWD_ADM'] = '827ccb0eea8a706c4c34a16891f84e7b';             # пароль Админа в MD5 формате
$_CONFIG['URI_ADM'] = 'admin';                                         # адрес админки, смените для безопасности!!!
$_CONFIG['BLOCKING_USER'] = array();                                   # Запретить вход на сайт по IP или диапазону.
$_CONFIG['BAD_POST_URL'] = 'xxx.ru|xxx.com';                           # Запрещенные домены (Кириллица - регистроЗависимая)
$_CONFIG['MAX_SYMBOL_LONG_URL'] = 4000;                                # максимум символов в длинным url, стандарт 4000.
$_CONFIG['MIN_SYMBOL_LONG_URL']= 8;                                    # минимум символов в длинном url (8 минимум)
$_CONFIG['MIN_SYMBOL_SHORT_URL'] = 3;                                  # Минимум символов в коротком url 
$_CONFIG['MAX_SYMBOL_SHORT_URL'] = 40;                                 # Максимум символов в коротком url
$_CONFIG['BAN_POST_SHORT_URL'] = 'xxx.html|fack';                      # Запрещенные короткие urlы 
$_CONFIG['SEND_HEADER_ARR'] = array('301 Moved Permanently',           # Отправляемые http заголовки 3xx: Redirection (перенаправление)               
                                    '302 Found',
                                    '307 Temporary Redirect',
                                    '303 See Other',
                                    "305 Use Proxy");                      
$_CONFIG['SEND_HEADER_DEFAUL'] = 1;                                     # Отправляемый заголовок по дифолту (счет с нуля)
$_CONFIG['CLOCK_TIME_DEFAUL'] = 168;                                    # Время хранения ссылки в часах по дифолту (неделя => 7 дней * 24 часа = 168 часов)
$_CONFIG['CLOCK_TIME_ARR'] = array( 1 => 'час',                         # Дополнительные пункты "Время хранения ссылки".
                                    24 => 'сутки',                    
                                    168 => 'неделя',               
                                    744 => 'месяц',
                                    4463 => 'полгода',
                                    87600 => 'максимум');               # 10 лет
$_CONFIG['CLOCK_TIME_SORT'] = 3;                                        # разбивка списка переменной CLOCK_TIME_ARR
$_CONFIG['URI_PROTOCOL_BAD'] = 'dns:|soldat:|ssh:|file:';               # запрещенные протоколы 
                                                                        # разрешенные протоколы:
$_CONFIG['URI_PROTOCOL_GOOD'] = 'cid:|crid:|data:|dav:|dict:|fax:|ftp:|go:|gopher:|h323:|http:|https:|im:|imap:|ldap:|mailto:|mid:|news:|nfs:|nntp:|pop:|pres:|rtsp:|tel:|telnet:|urn:|wais:|xmpp:|about:|aim:|bolo:|btc:|bzr:|callto:|chrome:|cvs:|daap:|ed2k:|ed2kftp:|feed:|fish:|git:|irc:|ircs:|lastfm:|ldaps:|magnet:|mms:|msnim:|rsync:|skype:|svn:|sftp:|smb:|sms:|steam:|unreal:|view-source:|vzochat:|webcal:|xfire:|ymsgr'; 
...

Как установить скрипт короткие ссылки

Для работы скрипта требуется php и база данных mysql.
Создать базу данных mysql, и в phpmyadmin импортировать дамп файл shortLinks.sql. Залить файлы в архиве на сервер и отредактировать файл index.php прописав в нем данные для конекта к базе, покрутить настройки и запустить его. Будут вопросы задавайте.

Хелпы и факю

$_CONFIG['INF_DOMAIN'] Массив с доменами предназначенные для переадресации коротких ссылок и их префикс.
Префикс - символ после домена, например собачка www.domain.ru/@12321, разграничивает ресурсы между вашими страницами и этим скриптом или оставить пустым если домен используется только для скрипта коротких ссылок.
По мимо редактирования масива нужно откорректировать файл .htaccess и указать в нем выбранный вами префикс для каждого домена.
Папка /other-domains/ - для доменов с префиксами.
Без префикса - htaccess в корне архива.
Количество доменов не ограничено.
$_CONFIG['PSWD_ADM'] Пароль админа шифрованный в md5 (однократно), по дифолту пароль 12345.
Сгенерируйте свой пароль в md5 и присвойте его этой переменной.
Как? вот несколько способов:
  • Спомощью notepad++ > Инструменты > MD5 > Сгенерировать
  • На своем сервере выполнив php код: echo md5('12345');
  • Онлайн сервисами
$_CONFIG['URI_ADM'] url адрес администрированной панели. По дифолту адрес: www.domain.ru/?admin.
Смените адрес на свой для безопасности!
Файлы и папки:
[other-domains]   // для редиректа доменов С префиксом
.htaccess -       // для редиректа БЕЗ префикса
func.php          // скрипт
index.php         // шаблон настройки
shortLinks.sql    // дамп БД для импорта
script.js
style.css

  1. # FeeWebber 09 ноября 2018, 11:31
    Добрый день, у меня при формировании короткой ссылки «domain.ru/-sds» после слеша постоянно приписывается дефис "-" можно ли сделать так что бы его не было в начале?

    Спасибо.
    1. # Телевизор 09 ноября 2018, 12:15
      Эта приставка в виде дефиса разграничивает ресурсы между вашими страницами и этим скриптом.
      Т.е если вы создадите свой ресурс-страницу в этом же корне домена то переадресация коротких ссылок будет работать и не пересекаться с вашим ресурсом.
      В принципе можно эту приставку убрать но тогда вы не сможете создавать свои страницы в этом домене.

      При первой возможности сделаю это функционально с выбором.
      1. # FeeWebber 09 ноября 2018, 16:47
        спасибо, ну у меня домен специально для коротких ссылок =)
        1. # FeeWebber 12 ноября 2018, 13:39
          Я думаю, не плохо было бы если была возможность выбора без спец символа и добавлять свой спец символ @ # и т.д… =)
          1. # Телевизор 12 ноября 2018, 15:12
            Да уже сделал, многое переделал и улучшил, как например разделил скрипт и html — что бы не было болезненно при обновлении.
            А также теперь на разных доменах можно с префиксом и без него.
            На днях опубликую и Вас уведомлю.
      2. # Влад22 11 октября 2018, 14:31
        Здравствуйте, подскажите пожалуйста в чем может быть проблема. Не создается в Базе запись. Сама База подключена правильно

        Спасибо
        1. # Телевизор 11 октября 2018, 17:01 (Комментарий был изменён)
          О какой версии идет речь?
          В самом начале index.php, есть режим отладки: смените с false на true и помониторте ошибки.
          1. # Влад22 11 октября 2018, 21:00
            Причина: на MySQL 5.7.21-0ubuntu0.16.04.1 не работает
            1. # Телевизор 11 октября 2018, 21:07
              Дык какую версию юзаете?
              1. # Влад22 11 октября 2018, 21:11
                v2.0
                1. # Телевизор 11 октября 2018, 22:08 (Комментарий был изменён)
                  Гуд, у меня вообще марияДБ, а демка на MySql и все гуд — запросы одни и теже.
                  скиньте ошибку лог а то не понятно так.
                  1. # Влад22 11 октября 2018, 23:19
                    Я немного некорректно написал. Об этом понял позже. Дело в том, что у меня на сервере работает высоконагруженный сайт и База настраивалась под него. Так что дело не в версии, а в индивидуальных настройках. На другом сервере ваш скрипт работает на УРА!!!

                    Скажите, а какую роль выполняет «Эта [Кнопка] как рулетка.»?
                    1. # Телевизор 12 октября 2018, 00:06
                      Очищает БД от не актуальных по времени хранения ссылок.
                      Цифры указывают количество ссылок в БД.
                      P.s чтобы не юзать крон, боты лазиющие по сайту сами активируют чистку.
                      1. # Влад22 12 октября 2018, 00:35
                        Аплодирую стоя!!! Весьма хитроумное решение.

                        Спасибо за скрипт
                  2. # 55555 07 сентября 2018, 14:42 (Комментарий был изменён)
                    Если ссылку не генерировать а просто нажать кнопку «ПОЛУЧИТЬ ССЫЛКУ» то получается сверху фигня, где подправить?
                    1. # Телевизор 07 сентября 2018, 16:06
                      какая у Вас версия php?
                      1. # 55555 07 сентября 2018, 16:24 (Комментарий был изменён)
                        Я хотел убрать это-----> [Delete] Вернул на место, все заработало ) PHP 5.6 стоит, кака должна PHP 5.2 — 7.2?
                        1. # Телевизор 07 сентября 2018, 16:45
                          Она как раз под php 5.6.
                          В любом случае сегодня опубликую и для php7.
                    2. # 55555 04 сентября 2018, 21:56
                      Не качается «Блокируется реклама!
                      Отключив блокировку рекламы, Вы сможете
                      бесплатно скачать файл с наших серверов.»
                      1. # Телевизор 05 сентября 2018, 01:26
                        Дык отключите блокировку рекламы в вашем браузере.
                        1. # 55555 05 сентября 2018, 07:12 (Комментарий был изменён)
                          Дык отключал в 3х браузерах и все равно ни с одного не скачал (((. Ха ха только что скачал на телефон, ссылка появилась. Браузер тотже что и на компе (яндекс) но рекламу в телефоне не отключал, магия…
                          1. # Телевизор 07 сентября 2018, 11:53
                            Прошу прощения, исправлено.
                      2. # ОЛЕ 28 марта 2018, 19:29
                        Проблема была в том, что нужно было свое доменное имя указать в $_CONFIG['REDIR_DOMAIN']= array().
                        Спасибо за скрипт)))!
                        1. # ОЛЕ 28 марта 2018, 19:03
                          Без входа в админку этот скрипт должен работать? Поскольку при попытке перейти в админку выдает оповещение, что «Учетная запись отключена администратором сервера».
                          Скрипт в меня тоже нормально не работает: выдает постоянно ошибку «Не удается получить доступ к сайту. ERR_NAME_RESOLUTION_FAILED»!
                          К тому же, последние три колонки в БД остаются пустыми
                          1. # Телевизор 28 марта 2018, 20:21 (Комментарий был изменён)
                            Без входа в админку этот скрипт должен работать
                            да.
                            Эти ошибки не как не связаны со скриптом, это уже траблы на стороне сервера или браузера.
                          2. # hi-cd 28 марта 2018, 12:41 (Комментарий был изменён)
                            Доброго времени суток! Скрипт коротких ссылок так и не удалось запустить. Редирект не работает, перекидывает на сайт первоисточник. [ссылка]
                            1. # Телевизор 28 марта 2018, 12:58 (Комментарий был изменён)
                              1) В файле index.php в первой строке включите вывод ошибок на экран, вместо
                              if (false) замените на if (true)
                              2) Как мне кажется у Вас не обрабатывается / не настроен .htaccess учитывая что скрипт Вы положили в дерикторию.
                              Попробуйте файл .htaccess положить в корень вашего домена и в самом файле .htaccess указать верный путь к скрипту
                              RewriteRule ^-(.*) ПАПКА/?redirLink=$1 [L]
                              В ведь ваш сайт при редиректе отдает страницу 404 — что означает не верно указанный путь, а путь должен быть к index.php скрипта, далее идет подключение к БД и выборка к переадресуемой ссылке.