Не работают ссылки t.me на сайте — решение проблемы

66

13-14 июля при переходе по ссылке на одном из своих проектов я заметил, что домен t.me не работает: ссылки не открывают аккаунты и не перенаправляют пользователей в Telegram. В сети сразу же нашлась информация о глобальной проблеме. Поэтому оперативно публикую рабочее решение, чтобы ваш бизнес не терпел простой и не терял потенциальных клиентов.

Обновление: работа домена t.me уже восстановлена. Статья остаётся актуальной как способ временной замены ссылок при повторном сбое или проблемах у отдельных провайдеров.

В чём проблема с t.me

В текущей ситуации виновата не блокировка со стороны РКН, а проблема с самим доменом t.me. Он относится к национальной доменной зоне Черногории .me и получил статус serverHold, из-за чего перестал нормально разрешаться через DNS.

Точные причины произошедшего на момент публикации достоверно неизвестны. При этом сам Telegram продолжает работать — проблема касается именно переходов через ссылки t.me.

Telegram уже начал возвращать в профилях старый формат ссылок:

https://telegram.me/a_d_max

Ранее для этого использовался короткий вариант:

https://t.me/a_d_max

Быстрое решение

Самый простой вариант — заменить в ссылках домен t.me на telegram.me.

Было:

https://t.me/a_d_max

Стало:

https://telegram.me/a_d_max

Имя пользователя, путь и дополнительные параметры ссылки при этом менять не нужно. Для небольшого сайта достаточно вручную проверить кнопки Telegram и заменить адреса через административную панель.

Замена ссылок через базу данных

Для крупных проектов можно использовать несколько вариантов решения. Если вы не хотите платить программисту и решили самостоятельно править базу данных, все дальнейшие манипуляции выполняйте на свой страх и риск.

Перед выполнением запроса обязательно создайте резервную копию базы данных.

Если сайт работает на CMS, ссылки можно заменить напрямую через базу данных. Покажу запрос на примере WordPress:

UPDATE wp_posts
SET post_content = REPLACE(
    post_content,
    'https://t.me/',
    'https://telegram.me/'
)
WHERE post_content LIKE '%https://t.me/%';

Если у таблиц WordPress используется другой префикс, замените wp_posts на настоящее название таблицы. Например, она может называться site_posts или wp7_posts.

Перед обновлением можно посмотреть, какие записи будут изменены:

SELECT ID, post_title
FROM wp_posts
WHERE post_content LIKE '%https://t.me/%';

Важно: этот запрос заменяет ссылки только в поле post_content указанной таблицы. То есть в основном содержимом страниц и записей.

Если адреса Telegram хранятся в настройках темы, ACF-полях, виджетах, конструкторах страниц или прописаны в шаблоне напрямую, этот вариант может не решить проблему полностью. Бездумно выполнять такую замену во всех таблицах тоже не стоит: некоторые данные WordPress хранятся в сериализованном виде, и обычный SQL-запрос может их повредить.

Для упрощения задачи можно использовать плагин Better Search Replace. Он позволяет найти адреса https://t.me/ во всей базе данных WordPress и заменить их на https://telegram.me/ без ручного выполнения SQL-запросов.

Перед заменой обязательно создайте резервную копию базы данных. Сначала запустите поиск в тестовом режиме Холостой запуск (без замены), чтобы посмотреть, в каких таблицах и сколько значений будет изменено. Если результат корректный, отключите тестовый режим и выполните замену.

Пример замены t.me с помощью плагина Better Search Replace

Пример замены t.me с помощью плагина Better Search Replace

В поле поиска укажите:

https://t.me/

В поле замены:

https://telegram.me/

Better Search Replace удобнее обычного SQL-запроса тем, что корректно работает в том числе с сериализованными данными WordPress. Это особенно важно, если ссылки хранятся в настройках темы, виджетах, ACF-полях или конструкторах страниц.

Замена ссылок в файлах сайта

Если ссылки прописаны непосредственно в шаблонах, понадобится выполнить поиск по файлам сайта.

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

Для поиска и замены подойдёт обычный редактор Notepad++:

  1. Откройте Notepad++.
  2. Нажмите сочетание клавиш Ctrl + H.
  3. Перейдите во вкладку «Найти в файлах».
  4. В поле «Найти» укажите https://t.me/.
  5. В поле «Заменить на» укажите https://telegram.me/.
  6. В поле «Папка» выберите папку с файлами проекта.
  7. Сначала нажмите «Найти всё», чтобы проверить результаты.
  8. Если всё верно, нажмите «Заменить в файлах».
Пример замены t.me с помощью Notepad++

Пример замены t.me с помощью Notepad++

Не нажимайте замену вслепую. Сначала посмотрите найденные совпадения и убедитесь, что редактор не собирается изменять резервные копии, кэш, библиотеки или другие файлы, которые не относятся к рабочему шаблону.

Замена через JavaScript

Если вы совсем не разбираетесь в коде, не хотите платить никому деньги, вам просто жалко или вы решили, что эта работа ничего не стоит, можно использовать самый быстрый и одновременно самый неправильный метод — подмену ссылок через JavaScript.

Скрипт найдёт ссылки, начинающиеся с https://t.me/, и заменит домен после загрузки страницы:

document.addEventListener('DOMContentLoaded', function () {
    document
        .querySelectorAll('a[href^="https://t.me/"]')
        .forEach(function (link) {
            link.href = link.href.replace(
                'https://t.me/',
                'https://telegram.me/'
            );
        });
});

Его можно временно добавить перед закрывающим тегом </body>. В стандартной теме WordPress это место обычно находится в файле footer.php. В других проектах нужно искать аналогичный общий шаблон, который подключается на всех страницах сайта.

У такого способа есть очевидные минусы. Изначально в HTML всё равно остаётся неработающая ссылка, а заменяется она только после выполнения JavaScript. Если скрипты загружаются с задержкой, пользователь может успеть нажать на старую ссылку. Кроме того, JavaScript может быть отключён или не выполниться из-за другой ошибки на странице.

Поэтому этот вариант стоит использовать только как временную заплатку. Правильнее заменить ссылки непосредственно в базе данных, настройках CMS или файлах шаблона.

Итог

Не теряйте потенциальных клиентов и оперативно реанимируйте обратную связь на своём проекте. Проверьте кнопки Telegram в шапке, подвале, формах, всплывающих окнах и на странице контактов.

Если при замене ссылок возникли трудности, вы всегда знаете, к кому обратиться за услугой.

0
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(9 голосов, в среднем: 5 из 5)
не скупись ☝️ оцени статью
Подписка на обновления:
Автор блога Рябухин Максим

Я фрилансер веб-разработчик. Последние несколько лет занимаюсь версткой и веб-программированием на PHP и Javascript. Если вам понадобится помощь с блогом Wordpress, либо адаптация сайта, я всегда рад помочь.

связаться
Вместе с этим советую почитать:

Оставьте комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
не пытайтесь оскорбить автора, либо участников блога, ваши комментарии все равно не будут промодерированы!
у меня есть сайт

комментариев: 0
    показать все