Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490

Реализация сервиса сокращения ссылок

24.09.2015, 21:40. Показов 6551. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу для внутренних нужд сделать сервис по сокращению ссылок. Дело в том, что клиентам приходится часто рассылать длиннющие ссылки с get-параметрами, что некрасиво как-то смотрится.

Как я себе это представляю: настроить .htaccess так, чтобы при переходе по несуществующей ссылке юзера редиректило на скрипт обработки ссылки.
Сделать БД, в которой хранить соответствие короткая_ссыль => длинная_ссыль
Скрипт обработки (упомянутый выше) ищет соответствие в БД. Если есть - редирект на длинную_ссыль, если нет - редирект на главную страницу сайта.
Все верно? или я что-то упустил?

Буду благодарен за ссылки на какие-нить статьи по теме
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.09.2015, 21:40
Ответы с готовыми решениями:

Реализация Реферальных Ссылок
Расскажите (желательно по пунктам) Как Реализуются реферальные ссылки . или если есть статью на существующую

Реализация ссылок с передачей параметров
Я хотел бы спросить как реальзуются ссылки id.php?id=1 в php, найти в интернете не могу Можно через скрытое поле, но данный способ не...

ЧПУ реализация или почему не работает такой вид ссылок
реализация через htaccess /// Изначально ссылка вот такого типа: http://site.php/?page=edit Хочу преобразовать вот в такой вид:...

34
Заблокирован
24.09.2015, 22:12
Тут и упускать нечего. Вот только я не совсем поняла, для чего вам это нужно. Таких сервисов достаточно. Или вы просто хотите иметь свой персональный, со своим доменом, полным контролем над ссылками? Если понадобится домен покороче, добро пожаловать в мой паблик Короткие ссылки.
1
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
24.09.2015, 22:18  [ТС]
да, я знаю. Просто не хочется ни от кого зависеть. Ну и под словом "сокращение" условности.. у меня доменное имя типа http://bes-sites.ru, сервис мой работает из папки типа http://bes-sites.ru/dd/, а ссылки клиентам шлются вообще дикие типа http://bes-sites.ru/dd/PageLoa... 7uj8fvbnmj
а мне хотелось бы попроще типа http://bes-sites.ru/FgR5T
0
Заблокирован
24.09.2015, 22:18
Можно к какому-нибудь своему сайту подключить модуль на подобии go и все.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
24.09.2015, 22:19  [ТС]
Цитата Сообщение от Июнь Посмотреть сообщение
модуль на подобии go
это что? Внешний сервис? или библиотека?
0
Заблокирован
24.09.2015, 22:27
Цитата Сообщение от Laroux Посмотреть сообщение
а мне хотелось бы попроще типа...
Это от движка сайта зависит. Если можно в маршрутизатор заносить произвольные ссылки и прикреплять к ним нужный обработчик, то это можно за пять минут организовать. Текст модуля будет из нескольких строк состоять, если не делать генерацию произвольных коротких ссылок, а ограничиться только перенаправлением.

Добавлено через 1 минуту
Цитата Сообщение от Laroux Посмотреть сообщение
это что? Внешний сервис? или библиотека?
Во многих CMS, движках такое есть. А ля go.php

Добавлено через 43 секунды
Используется для маскировки внешних ссылок.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
24.09.2015, 22:41  [ТС]
у меня все самописное от и до. Да и самому, если честно, интересно, как это устроено. Реализовать то, что я описал в шапке темы - дело получаса.
а можете мне подсказать, что подразумевается под
Цитата Сообщение от Июнь Посмотреть сообщение
Если можно в маршрутизатор заносить произвольные ссылки
? Что за маршрутизатор?

и чтобы найти модуль go.php мне нужно будет какую-нить СМS развернуть и найти этот модуль? Ну чтобы посмотреть, как он работает

Добавлено через 6 минут
Кстати, гуглится-то тема)) не первый я (и не последний)
https://github.com/YOURLS/YOURLS вот рекомендуют что.
Честно говоря, не хочется всяких таких наворотов.. хотя.. почему бы и нет

Добавлено через 4 минуты
не.. нет)) очень уж он навороченный. Мне 99% этого нафиг не нужно
0
Заблокирован
24.09.2015, 22:43
Если самописное, то лучше и проще самому. Думала, может, у вас есть какой-нибудь подходящий сайт на известной CMS.

Для перенаправления несуществующей ссылки на главную нужно модифицировать обработчик ошибки 404. По мне лучше его не трогать, а то все некорректные ссылки будут давать перенаправление на главную. Сейчас попробую. 5 минут.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
24.09.2015, 22:44  [ТС]
Цитата Сообщение от Июнь Посмотреть сообщение
все некорректные ссылки будут давать перенаправление на главную
это же наоборот хорошо.. или почему нет?
0
Заблокирован
24.09.2015, 23:07
Цитата Сообщение от Laroux Посмотреть сообщение
это же наоборот хорошо.. или почему нет?
Почему хорошо?

Сделала. Все работает. Вот весь код:
PHP
1
2
3
4
<?php
 
header('Location: '.$content);
exit;
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
24.09.2015, 23:19  [ТС]
Хороший код))) Прям и не знаю что сказать)))
поподробнее бы))
Цитата Сообщение от Июнь Посмотреть сообщение
Почему хорошо?
ну как же.. юзвери и знать не будут, что перешли по "битой" ссылке, а будут отправлены на сайт. Ну вообще да - это смотря что требуется и, может быть, и вредно иногда. Соглашусь. Как по мне - так пусть на главку идут, если ошиблись в адресе
0
Заблокирован
24.09.2015, 23:44
Цитата Сообщение от Laroux Посмотреть сообщение
Хороший код))) Прям и не знаю что сказать)))
поподробнее бы))
Точно не помню, но мы вроде бы с вами уже обсуждали скрипт, который я использовала. Если нет, думаю, вот эта тема будет полезна:
Чпу в адресной строке из mysql

Про маршрутизацию адресов сайта найти информацию несложно. Я загрузила показанный выше код на сайт и внесла в основную таблицу страниц сайта такую запись:
id: FgR5T
content: https://www.cyberforum.ru/php-... hread15374...
bits: 17
module: go

Цитата Сообщение от Laroux Посмотреть сообщение
ну как же.. юзвери и знать не будут, что перешли по "битой" ссылке, а будут отправлены на сайт. Ну вообще да - это смотря что требуется и, может быть, и вредно иногда. Соглашусь. Как по мне - так пусть на главку идут, если ошиблись в адресе
Если делать сервис в виде отдельного сайта, то можно.
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
25.09.2015, 04:23
Как все сложно... мне самому предстоит написать подобное (один из подпунктов моего мега-проекта), поэтому обдумал теорию! (мне предстоит ДИКТОВАТЬ ссылки на страницы моего сайта по телефону - хочу заменить на простые/слышимые/понимаемые буквы и цифры - tfdae, без sc, wv, iu, qgj)

1) проще всего выделить "папку" для коротких ссылок и целый скрипт. Типа my.com/go.php?id=FgR5T
2) в настройках хостинга регистрируется "переадресация". Это когда my.com/go/ХХХ автоматом уходят на my.com/go.php?id=ХХХ. Такое ТОЧНО можно настроить в nginx и вроде видел в апаче!
3) в go.php можно обойтись действительно header('Location: '.$link); exit;. До этого получив соответсвие id=>link по таблице в базе. В случае провала поиска по базе можно переадресовывать на страницу 404. А можно вообще "подтягивать" контекст по ссылке внутрь go.php вместо переадресации. Тогда уверен что юзер не увидет полного адреса.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
25.09.2015, 09:53  [ТС]
Цитата Сообщение от Tester64 Посмотреть сообщение
юзер не увидет полного адреса
нет пока что такой необходимости
0
Заблокирован
25.09.2015, 11:53
Цитата Сообщение от Tester64 Посмотреть сообщение
Как все сложно...
Да, просто непосильная задача

Цитата Сообщение от Tester64 Посмотреть сообщение
Как все сложно... мне самому предстоит написать подобное (один из подпунктов моего мега-проекта), поэтому обдумал теорию! (мне предстоит ДИКТОВАТЬ ссылки на страницы моего сайта по телефону - хочу заменить на простые/слышимые/понимаемые буквы и цифры - tfdae, без sc, wv, iu, qgj)
Проще использовать короткие английские слова или русские с хорошей транслитерацией. Также можно делать ссылки в виде слов на кириллице.

Цитата Сообщение от Tester64 Посмотреть сообщение
2) в настройках хостинга регистрируется "переадресация". Это когда my.com/go/ХХХ автоматом уходят на my.com/go.php?id=ХХХ. Такое ТОЧНО можно настроить в nginx и вроде видел в апаче!
Без крайней необходимости лучше не использовать настройки хостинга. На другом хостинге этого может и не быть. Для апача это можно сделать в .htaccess (посмотрите тему про ЧПУ, ссылку на которую я давала).

Цитата Сообщение от Laroux Посмотреть сообщение
нет пока что такой необходимости
И вряд ли появится. Это уже какая-то другая категория ПО.
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
25.09.2015, 22:06
Цитата Сообщение от Июнь Посмотреть сообщение
короткие английские слова или русские с хорошей транслитерацией
Это надо завести словарь подобных слов и не обязательно они удачно услышатся "на той стороне" и юзвер будет знать как это набрать. По той-же причине лучше без кирилицы! Броузер не поддерживает, язык не установлен, на планшете тяжело переключиться. Я вообще еще не решил - может проще цифровой код ввести - 20.395.234.234.3.2
(но это еще не скоро)

Цитата Сообщение от Июнь Посмотреть сообщение
И вряд ли появится. Это уже какая-то другая категория ПО.
Ну почему-же... я встречал подобное в CMS. Кажется даже в Друпале был плагин, который оставлял товар инет-магазина на коротких ссылках, а не перекидывал "tovar/noutbuks/asus100" на "go.php?folder=tovar/noutbuks&tovar_id=2930493"

Цитата Сообщение от Июнь Посмотреть сообщение
Без крайней необходимости лучше не использовать настройки хостинга.
У меня (чужой) хостинг на nginx, а не апаче. И там без этого похоже никак! Причем после прописывания настроек приходится ПЕРЕГРУЗИТЬ nginx. (зато он во много раз быстрее апача)
0
Заблокирован
26.09.2015, 10:37
Цитата Сообщение от Tester64 Посмотреть сообщение
Это надо завести словарь подобных слов и не обязательно они удачно услышатся "на той стороне" и юзвер будет знать как это набрать. По той-же причине лучше без кирилицы! Броузер не поддерживает, язык не установлен, на планшете тяжело переключиться. Я вообще еще не решил - может проще цифровой код ввести - 20.395.234.234.3.2
(но это еще не скоро)
Цифры запоминать сложнее, чем осмысленный набор букв. Если основная задача - передать по телефону, то можно. Но обычно основная задача - чтобы хорошо запоминалось.

Цитата Сообщение от Tester64 Посмотреть сообщение
Ну почему-же... я встречал подобное в CMS. Кажется даже в Друпале был плагин, который оставлял товар инет-магазина на коротких ссылках, а не перекидывал "tovar/noutbuks/asus100" на "go.php?folder=tovar/noutbuks&tovar_id=2930493"
Не путайте внутреннее перенаправление с внешним. В том скрипте, который я приводила в качестве примера, изначально используются ЧПУ-ссылки, т.е. при помощи веб-сервера один раз происходит внутреннее перенаправление всех ссылок на точку входа, а в ней уже разбираются исходные ссылки.

Цитата Сообщение от Tester64 Посмотреть сообщение
У меня (чужой) хостинг на nginx, а не апаче. И там без этого похоже никак! Причем после прописывания настроек приходится ПЕРЕГРУЗИТЬ nginx. (зато он во много раз быстрее апача)
nginx обычно используется в связке с апачем. Если он сам по себе, то нужно редактировать секцию server конфигурационного файла. Но опять-таки лучше сделать переаправление на точку входа и на этом остановиться, чем по всяким мелочам редактировать конфигурационный файл.
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
26.09.2015, 20:00
Цитата Сообщение от Июнь Посмотреть сообщение
Цифры запоминать сложнее
Попробуйте запомнить короткую ссылку FgR5T зато ее можно передать в смс или вывести в короткое поле
...но мне - диктовать! не запоминать, а сразу набирать сидя перед сайтом. Не войдите на сайт, нажмите менюшку, найдите среди пунктов 103ю строку форума/инструкции, а либо сразу набирайте в строке адреса, либо в строке поиска и вас перебросят на страницу которую через меню пол часа искать можно...
0
Заблокирован
26.09.2015, 20:12
Это не серьезно. Я, долго не думая, взяла ссылку из примера Ляру. Точно так же можно сделать осмысленную ссылку, например /link или /links.
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
26.09.2015, 21:42
Цитата Сообщение от Июнь Посмотреть сообщение
Точно так же можно сделать осмысленную ссылку, например /link или /links.
Короткие ссылки нужны не для этого! у ютбюа они есть, у файловых хранилищ. И все тяжело запомнить. Они позволяют быстро перейти на одну из тысяч страниц. Или напечататься на визитке. Или передать ссылку по смс.
... в этом мало осмысленного! просто 6 символов вместо 100... запоминать не надо и вводить быстрее... перепечатать из другого источника...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2015, 21:42
Помогаю со студенческими работами здесь

Как пользоваться API сервиса яндекса коротких ссылок?
Добрый! Пытаюсь подключить к сервису яндекса коротких ссылок. var XHR = (&quot;onload&quot; in new XMLHttpRequest()) ? XMLHttpRequest...

Нужен web программист для реализация проекта сервиса грузоперевозок
Необходимо реализовать проект на подобие http://perevezi.ru/ или http://www.vezetvsem.info/ Желательно прикрепить скрипт работы...

Для SOA приложений: реализация сервиса, предоставляющего услуги клиентским приложениям
Подскажыте как подступится к этой фигне Для SOA приложений: реализация сервиса, предоставляющего услуги клиентским приложениям;...

Реализация вектора ссылок
Доброго времени суток, дорогие форумчане! Проблема в следующем: мне дано было задание сделать игру Го(кто не знает это что-то вроде...

Реализация программы с использованием ссылок и указателей
Добрые люди! Подскажите, есть ли тут использованные ссылки и указатели? Препод не принимает лабораторную работу, пока я не реализую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru