5 хв читанняТуторіали

Коротке посилання не працює? Діагностуйте це однією командою

Коротке посилання, яке видає 404, попереджає про сертифікат або відкривається в одному застосунку, але не в іншому, має чотири причини. Прочитайте заголовки відповіді - і виправте саме ту, що потрібна.

Marius Voß
DevRel · edge infra
Коротке посилання не працює: читання заголовків відповіді короткого URL, щоб відрізнити 404 від помилки сертифіката, блокування в застосунку та циклу редиректів

Коротке посилання, яке не працює, ламається одним із чотирьох способів, і вони ніяк не пов'язані між собою. Запустіть curl -sI на нього, і перший рядок покаже, з яким саме випадком ви маєте справу:

curl -sI https://s.elido.me/ab12cd

301 із заголовком Location означає, що посилання здорове, а проблема - десь далі. 404 означає, що слаг неправильний, видалений або вказаний не в тому регістрі. Помилка TLS до будь-якого HTTP узагалі означає, що домен ще не налаштований до кінця. А 200 зі сторінкою попередження означає, що щось між вами й посиланням вирішило його не пропускати.

Десять секунд у терміналі варті більше, ніж година здогадок, бо браузер зводить усі чотири причини до однієї й тієї самої марної сторінки помилки. Ця стаття розбирає кожну причину та її виправлення.

Чотири симптоми несправного короткого посилання з причинами та виправленнями: 404 від домену, попередження про сертифікат, блокування всередині застосунку та цикл редиректів

404 від короткого домену

Домен відповів, тож DNS і TLS у порядку. Проблема - у слазі.

Спершу перевірте регістр. Більшість скорочувачів трактують слаги як чутливі до регістру, тож /Spring і /spring - це два різні посилання, і існує лише одне з них. Якщо посилання взяте з друкованої листівки, підозрюйте символи, які в шрифті без засічок виглядають однаково: велика I, маленька l і цифра 1; велика O і нуль. Це найсильніший аргумент на користь кастомних закінчень посилань зі справжніх слів, а не випадкових символів.

Якщо слаг правильний, перевірте, чи посилання не видалили або не заархівували, і чи не встановлено для нього термін дії. Термін дії посилань і посилання, що самознищуються розглядає, як поводиться запланований термін дії після спрацювання: посилання перестає резолвитися і для того, хто по ньому перейшов, виглядає точнісінько як одруківка.

Ще один варіант для посилання, яке раніше працювало: геоправило чи правило пристрою, яке виключає місце, звідки ви тестуєте. Розумні посилання маршрутизують за країною і пристроєм, і правило без запасного варіанта - це 404 для всіх, хто не входить до списку.

Попередження про сертифікат на кастомному домені

Тут узагалі не відбулося нічого на рівні HTTP. Браузер відмовив ще під час TLS-хендшейку, а це означає, що домен обслуговує запити ще до появи сертифіката.

Майже всі випадки пояснюються двома причинами. DNS-запис додали, але перевірку так і не завершили, тож сертифікат так і не видали. Або домен спрямували через A-запис, тоді як провайдер просив CNAME, і перевірка, що підтверджує контроль над доменом, не може завершитися.

Виправлення - завершити запис точно так, як вказано в дашборді, а тоді почекати: поширення залежить від попереднього TTL того, що там було раніше, тож запис, який мав TTL в одну годину, проясниться аж за годину. Кастомні домени для коротких посилань містить повний розбір DNS і TLS, а TLS для кастомного домену за п'ять хвилин описує щасливий сценарій.

Три етапи проходження короткого посилання - DNS, TLS і 301-редирект - та збій, що відповідає кожному етапу

Працює в браузері, але не в застосунку

Посилання чудово резолвиться з вашого термінала, але в Slack, Teams, WhatsApp чи поштовому шлюзі його вирізають, позначають або тихо відкидають.

Річ не у вашому посиланні. Річ у репутації домену. Безкоштовні публічні домени скорочувачів ділять між собою всі, хто ними користується, включно з фішинговою кампанією, яка сьогодні вранці працювала на тому самому домені, а постачальники безпеки, що живлять ці застосунки, ведуть чорні списки за доменом, а не за слагом.

На спільному домені жодне налаштування цього не виправить. Виправлення - власний домен, де репутація належить лише вам і зростає, а не обвалюється випадково. Чому короткі посилання блокуються в Slack і Teams описує повний механізм, включно з тим, що робити, якщо ваш власний домен усе ж таки позначили.

Email додає ще один рівень: деякі продукти безпеки переписують кожне посилання в листі, тож одержувач насправді клікає URL-адресу постачальника, а не вашу. Чи шкодять короткі посилання доставленості email розглядає цю взаємодію.

Якщо ви досі на спільному домені, саме зараз час перейти. Налаштуйте брендований домен на безкоштовному плані і перевипустіть посилання, які мають значення.

Цикли редиректів і довгі ланцюжки

curl -sI показує один стрибок. Додайте -L і порахуйте їх:

curl -sIL https://s.elido.me/ab12cd | grep -E '^HTTP|^[Ll]ocation'

Два-три рядки - це нормально: коротке посилання редиректить, а призначення може ще раз редиректнути з http на https або з кореневого домену на www. Ціла стіна рядків означає цикл, а звична причина - посилання відредагували так, що воно веде на сторінку, яка сама редиректить назад на коротку URL-адресу. Спрямуйте призначення на кінцеву сторінку, а не на ще один редирект.

Браузери припиняють переходити після фіксованої кількості стрибків і показують типову сторінку "занадто багато редиректів", тому термінал - швидший спосіб діагностики: curl виводить кожен заголовок Location по дорозі, тож ви бачите точно, які дві URL-адреси вказують одна на одну. Семантика кодів стану визначена в RFC 9110, а практично це означає, що постійний редирект кешується браузером, тож неправильний 301 і далі лишається неправильним для цього відвідувача навіть після виправлення.

Довгі ланцюжки варто скорочувати, навіть якщо вони працюють. Кожен стрибок додає затримку на мобільному з'єднанні, і кожен - ще одне місце, де може загубитися рядок запиту, а саме так губляться UTM-параметри в GA4. Пояснення 301 проти 302 розглядає, який код стану де застосовувати, а типи редиректів охоплює решту родини.

Коли зламане саме призначення

Іноді коротке посилання в порядку, а сторінка за ним - ні. Редирект повертає 301, браузер переходить за ним, а призначення повертає 404, бо сторінку кампанії зняли з публікації або змінили її слаг.

Саме цей тип збою і виправдовує існування коротких посилань, бо виправлення - це перенаправлення, а не передрук. Змініть призначення - і кожне місце, де було опубліковане посилання, знову запрацює, включно з друкованими матеріалами. Запобігання протуханню посилань розглядає, як ловити такі випадки раніше за клієнта, а моніторинг редиректів посилань за допомогою Sentry і Datadog розглядає сповіщення про це в масштабі.

Порядок перевірки

Спершу і завжди - заголовки. curl -sI відокремлює DNS від TLS і від HTTP одним рядком, і в кожного з них - своє виправлення, яке ніяк не пов'язане з двома іншими. Потім слаг, потім призначення, потім застосунок чи шлюз між ними.

Одна перевірка, яка ловить більшість проблем до того, як їх побачить хтось інший: відкрийте кожне нове посилання один раз, з телефону, на мобільному інтернеті, а не через офісний wifi. Це займає п'ятнадцять секунд і ловить сертифікат, який ще не видано, геоправило без запасного варіанта і призначення, яке редиректить туди, куди ви не очікували.

Читайте серію ключових матеріалів

Цей матеріал належить до навчального кластера. Механіку, що стоїть за цим, розглядає як працюють скорочувачі URL - шлях редиректу, а чекліст безпеки скорочувача URL розглядає бік зловживань, через який домени й блокують у першу чергу.

Ще в блозі

Поширені запитання

Чому моє коротке посилання не працює?

Запустіть curl -sI на нього й прочитайте перший рядок. 404 означає, що слаг неправильний або видалений, помилка TLS означає, що кастомний домен не налаштований до кінця, 200 зі сторінкою попередження означає, що застосунок або шлюз заблокував посилання, а низка кодів 301 означає, що призначення веде назад до посилання. У кожної причини - своє виправлення.

Чому моє коротке посилання показує, що сертифікат недійсний?

Кастомний домен обслуговує коротке посилання ще до того, як з'явився його сертифікат. Так стається, коли DNS-запис додали, але перевірку так і не завершили, або коли домен спрямували на сервіс редиректу через A-запис замість CNAME, якого просив провайдер. Завершіть перевірку - і сертифікат видається автоматично.

Чому моє коротке посилання працює в браузері, але не у WhatsApp чи Slack?

Тому що застосунок звіряє домен зі списком репутації, перш ніж пропустити повідомлення, а безкоштовні спільні домени скорочувачів несуть таку репутацію, яку заробив їхній найгірший користувач. Перенесення того самого посилання на власний домен вирішує проблему, бо тоді репутація належить лише вам.

Що означає цикл редиректів на короткому посиланні?

Призначення врешті-решт веде назад до короткого посилання, тож браузер відскакує між ними, доки не здається. Зазвичай так стається, коли хтось редагує посилання так, щоб воно вело на сторінку, яка сама редиректить назад на коротку URL-адресу, або коли два посилання ведуть одне на одне. Вкажіть у призначенні кінцеву сторінку.

Моє коротке посилання видає 404, але я бачу його в дашборді. Що робити?

Перевірте регістр і символи: слаги зазвичай чутливі до регістру, тож /Spring і /spring - різні посилання, а велику I поруч із маленькою l легко переплутати, передруковуючи з паперу. Потім перевірте, чи не має посилання дати закінчення або геоправила, яке виключає місце, звідки ви тестуєте.

Скільки часу потрібно короткому посиланню, щоб запрацювати?

Посилання на домені, який уже активний, працює миттєво. Абсолютно новому кастомному домену потрібно дочекатися поширення DNS і видачі сертифіката - зазвичай це хвилини, але може тривати до години залежно від попереднього TTL запису, який ви змінили.

Спробуйте Elido

Вставте URL - отримайте коротке посилання

Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.

Безкоштовно, без реєстрації · 2 на день

Спробуйте Elido

URL-скорочувач із хостингом у ЄС: власні домени, глибока аналітика, відкритий API. Безкоштовний тариф - без кредитної картки.

Теги
short link not working
short url 404
short link certificate error
redirect not working
short link blocked
troubleshoot short links

Читати далі