Как сделать реферальную ссылку и замаскировать ее
Реферальную ссылку выдает партнерская программа после регистрации участника. Чтобы сделать адрес аккуратнее, настройте перенаправление со своего домена или используйте сокращатель. Редирект 302 позволяет менять целевой адрес, сохраняя короткую ссылку в публикациях. Разберем настройку для Apache и nginx, передачу UTM-меток и учет кликов.
Партнерский характер ссылки при этом скрывать от читателя не стоит.
- Что такое реферальная ссылка и из чего она состоит
- Где взять свою реферальную ссылку
- Как сделать реферальную программу на своем сайте
- Зачем маскировать реферальную ссылку
- Способы замаскировать реферальную ссылку
- Маскировка через редирект на своем домене
- Плагины маскировки для WordPress
- Сокращатели ссылок
- Как не потерять аналитику кликов
- Маркировка рекламы и раскрытие партнерских ссылок
- Ошибки при маскировке реферальных ссылок
- Какой способ выбрать для своих ссылок
Что такое реферальная ссылка и из чего она состоит
Реферальная ссылка передает сервису идентификатор участника, который пригласил пользователя. Программа связывает приглашение с целевым действием по своим правилам. Вознаграждение может зависеть от регистрации, покупки или другого события. Сам переход не обязательно приносит выплату.
Реферер приглашает пользователя, реферал принимает приглашение.
Не путайте реферера с HTTP-заголовком Referer: заголовок сообщает адрес страницы, с которой пришел запрос.
Условный адрес помогает разобрать структуру без привязки к сервису:
https://partner.example/course?ref=123&utm_source=blog&utm_medium=affiliate&utm_campaign=review| Часть адреса | Значение | Назначение |
|---|---|---|
| Домен | partner.example | Сайт, который принимает приглашенного пользователя |
| Путь | /course | Страница курса |
| Реферальный параметр | ref=123 | Идентификатор приглашающего участника |
| Источник | utm_source=blog | Метка источника перехода |
| Канал | utm_medium=affiliate | Метка партнерского канала |
| Кампания | utm_campaign=review | Название размещения или кампании |
Первый параметр начинается после ?, остальные разделяет символ &. Программа может использовать r, aff_id или другое имя вместо ref.
Иногда идентификатор находится прямо в пути. Его формат определяет разработчик программы.
UTM-метки описывают источник трафика, но не заменяют реферальный идентификатор.
Где взять свою реферальную ссылку
Чтобы понять, как сделать реферальную ссылку, начните с кабинета программы. Добавление произвольного ref=123 к чужому адресу не подключает партнерство. Сервис должен распознавать параметр и связывать его с вашим аккаунтом.
- Войдите в аккаунт сервиса, который организует партнерскую программу.
- Найдите блок приглашений или партнерства. Ориентиры по смыслу – «Партнерская программа», «Пригласить друга», «Реферальная ссылка».
- Скопируйте адрес из поля приглашения. Если программа предлагает генератор ссылок, выберите нужную посадочную страницу.
- Сохраните исходный адрес отдельно. Сравните идентификатор в сохраненной ссылке с выданным значением.
- Откройте ссылку в отдельном профиле браузера. Убедитесь, что она приводит на нужную страницу, без ошибки адреса.
Если блока приглашений нет, используйте процедуру подключения участников, которую предлагает сам сервис. До получения идентификатора публиковать «собственную» реферальную ссылку бессмысленно.
Примеры для Beget и REG.RU
В Beget ориентируйтесь на партнерский блок личного кабинета. Найдите выданный вашему аккаунту адрес приглашения и скопируйте его целиком.
В REG.RU ищите в кабинете инструменты партнерства и поле персональной ссылки. Скопируйте выданный адрес целиком, сохранив все параметры и посадочную страницу.
Ссылки на Beget и REG.RU в этих примерах партнерские: редакция может получить вознаграждение.
Не переносите идентификаторы из чужих примеров в свою ссылку. Если персонального адреса в кабинете нет, сначала подключитесь к программе. После получения ссылки сравните ее с сохраненной копией и проверьте переход.
Как добавить UTM-метки
Добавляйте метки только к адресам, которые программа разрешает изменять. Подписанный URL может перестать работать после редактирования параметров. Для таких адресов используйте встроенный генератор или предусмотренные программой поля отслеживания.
У обычного URL с разрешенными дополнительными параметрами схема выглядит так:
Исходный адрес:
https://partner.example/course?ref=123
Адрес с метками:
https://partner.example/course?ref=123&utm_source=blog&utm_medium=affiliate&utm_campaign=reviewЕсли вопросительный знак уже есть, добавляйте метки через &. Не вставляйте второй ? перед utm_source. Для значений с пробелами и специальными символами используйте URL-кодирование.
После перехода сравните параметры в первом запросе к партнерскому сайту. Их проверяют в сетевом журнале браузера. Последующая очистка адресной строки самим сайтом еще не доказывает потерю атрибуции.
Как сделать реферальную программу на своем сайте
Владелец программы сам организует учет приглашений и начисление вознаграждений. Одна ссылка эту задачу не решает. Типовая схема связывает параметр, сохраненное приглашение и подтвержденное целевое действие.
- Создайте участнику уникальный идентификатор, например
123. - Обработайте параметр
ref=123при первом посещении сайта. - Сохраните связь с приглашением в cookie или серверной записи. После регистрации привяжите ее к аккаунту приглашенного пользователя.
- Начислите вознаграждение после подтвержденного события, например оплаченного заказа.
- Отмените начисление, если заказ вернули или признали недействительным.
Начисления храните на сервере. Cookie помогает распознать приглашение, но пользователь может изменить ее содержимое. Сервер должен проверять идентификатор, событие и повторные начисления.
Для WordPress существуют специализированные решения, например AffiliateWP и SliceWP. В экосистеме Joomla встречается AltaUserPoints. Облачная платформа партнерского учета выносит управление участниками за пределы CMS. Это варианты организации программы, а не способы сокращения адресов.
При выборе решения важнее всего интеграция с вашим событием оплаты. Определите срок атрибуции, правила повторных покупок и обработку возвратов. Затем проведите тестовую цепочку от приглашения до отмены заказа. В учете должна остаться одна корректная операция начисления и ее отмена.
Не подменяйте финансовый учет счетчиком переходов. Посещение страницы благодарности само по себе не подтверждает оплату.
Зачем маскировать реферальную ссылку
Короткий адрес удобнее публиковать, произносить и переносить между материалами. Например, путь /go/course легче прочитать, чем длинную строку параметров. Владелец сайта меняет назначение в одной настройке, сохраняя опубликованный адрес.
- Аккуратный вид помогает подписать ссылку понятным названием предложения.
- Централизованная настройка упрощает замену посадочной страницы.
- Отдельный путь позволяет учитывать запросы в серверном журнале.
- Редирект передает полный целевой URL, включая идентификатор и метки.
Маскировка уменьшает вероятность случайного удаления параметров при копировании. Однако она не защищает идентификатор от просмотра. Браузер получает целевой адрес при перенаправлении, и пользователь может его увидеть.
Если вы ищете, как скрыть реферальную ссылку, ограничьтесь аккуратным адресом. Рядом объясните, что переход связан с партнерской программой. Пользователь должен понимать, куда ведет ссылка и почему вы ее разместили.
Не подменяйте href через onclick. Такая подмена показывает один адрес, а при нажатии отправляет на другой. Она также усложняет копирование ссылки и работу без JavaScript.
Атрибут title задает подсказку, но не меняет адрес в строке состояния браузера. Подставлять в него другой домен ради отвлечения пользователя не стоит. Разрешение редиректов определяют условия конкретной партнерской программы.
Способы замаскировать реферальную ссылку
Выбор зависит от контроля над сайтом и способа учета переходов. Для собственного ресурса удобен постоянный короткий путь на своем домене. Для разового размещения вне сайта подходит сокращатель, если программа разрешает такие адреса.
| Способ | Что видит пользователь | Статистика | Нужен свой сайт | Сложность | Риски |
|---|---|---|---|---|---|
| Редирект на своем домене | Путь вроде /go/course | Серверный журнал; события на исходной странице | Нужен домен и сервер или хостинг с редиректами | Требует настройки сервера | Ошибка конфигурации, кэширование, потеря параметров |
| Плагин маскировки | Короткий путь на домене сайта | Через функцию учета плагина, если она предусмотрена | Да, WordPress | Настройка через административный интерфейс | Конфликт путей, зависимость от плагина |
| Сервис-сокращатель | Домен сервиса и короткий код | Зависит от возможностей сервиса | Нет | Создание ссылки через форму | Зависимость от чужого домена и правил сервиса |
| Брендированный короткий домен | Ваш отдельный домен и короткий путь | На собственном сервере или платформе управления | Нужен домен; полноценный сайт необязателен | Настройка DNS, HTTPS и редиректов | Просрочка домена, ошибки DNS, зависимость от платформы |
Брендированный домен использует тот же механизм перенаправления. Отдельный адрес полезен, когда ссылки распространяются между несколькими проектами. Продление домена и обслуживание HTTPS остаются вашей задачей.
Подмена адреса через onclick в эту таблицу не входит. Для аккуратной ссылки достаточно обычного серверного перенаправления.
Маскировка через редирект на своем домене
Создадим путь https://site.example/go/course, который перенаправляет на партнерский URL. Домены с окончанием .example в примерах условные. Замените их своими адресами и сохраните выданный программой идентификатор.
Перед изменениями скачайте копию конфигурации. Ошибка в файле сервера может нарушить работу сайта. Используйте только вариант для вашего веб-сервера.
Как настроить Apache через .htaccess
- Откройте корневую папку сайта через файловый менеджер хостинга или SFTP. Это папка с входным файлом сайта, например
index.php. - Скачайте резервную копию
.htaccess. Если файла нет, создайте его с точным именем, без расширения.txt. - Добавьте правило перед общими правилами CMS. В WordPress разместите его перед автоматически сформированным блоком, вне его границ.
- Сохраните файл и откройте короткий адрес. Браузер должен перейти на страницу предложения.
RewriteEngine On
RewriteRule ^go/course$ https://partner.example/course?ref=123&utm_source=blog&utm_medium=affiliate&utm_campaign=review [R=302,L,NE]Правило требует включенного mod_rewrite и разрешения таких настроек в .htaccess. В шаблоне правила начальный слеш не используется. Целевая строка параметров здесь задана полностью: входящие параметры короткого адреса ее не дополняют.
Если сайт отвечает ошибкой после сохранения, восстановите исходный файл. Если хостинг запрещает правила .htaccess, используйте его механизм редиректов либо настройку nginx.
Как настроить nginx
Для nginx нужен доступ к конфигурации виртуального хоста. Блок добавляется внутрь существующего server вашего HTTPS-сайта:
location = /go/course {
add_header Cache-Control "no-store" always;
return 302 "https://partner.example/course?ref=123&utm_source=blog&utm_medium=affiliate&utm_campaign=review";
}Проверку и применение выполняйте в терминале сервера с соответствующими правами:
sudo nginx -t
sudo nginx -s reloadЗапускайте вторую команду только после успешной проверки первой. При ошибке верните сохраненную конфигурацию и повторите nginx -t. Точное совпадение location = ограничивает правило одним путем.
Почему для партнерской ссылки подходит 302
Код 301 обозначает постоянное перенаправление и допускает длительное кэширование. Браузер может продолжить использовать сохраненный адрес после изменения настройки. Код 302 обозначает временное перенаправление и удобен для сменяемых предложений.
Код 307 также обозначает временное перенаправление, но сохраняет метод запроса. Для обычного перехода по ссылке методом GET достаточно 302.
Временные ответы тоже могут кэшироваться при соответствующих заголовках. Заголовок Cache-Control: no-store запрещает хранить ответ; в примере nginx он уже указан.
Как разместить ссылку и ограничить обход
В существующую группу User-agent: * файла robots.txt добавьте директиву:
Disallow: /go/Если такой группы нет, создайте ее:
User-agent: *
Disallow: /go/Не перезаписывайте остальные правила файла. Директива ограничивает обход для соблюдающих ее роботов. Она не скрывает адрес от людей и не гарантирует удаление URL из поиска.
В HTML публикации используйте обычную ссылку с раскрытием партнерства:
<p>Партнерская ссылка: я могу получить вознаграждение за покупку.</p>
<a href="/go/course" rel="sponsored nofollow">Перейти на сайт курса</a>Как проверить перенаправление
- Откройте инструменты разработчика браузера и вкладку сетевых запросов, обычно
Network. - Включите сохранение журнала при переходах и отключение кэша.
- Откройте короткий URL. Найдите запрос к
/go/course. - Посмотрите статус ответа и заголовок
Location. Ожидаются код 302 и полный партнерский адрес с метками. - Найдите следующий запрос к партнерскому домену. Сравните его идентификатор и UTM-метки с исходным адресом.
Назначение заголовка разобрано в документации MDN о Location. Для отката удалите добавленное правило и восстановите измененные файлы из копий.
Плагины маскировки для WordPress
Плагин удобен, когда ссылки редактирует автор без доступа к серверу. Он хранит соответствие между коротким путем и целевым адресом. Не путайте такой инструмент с системой начисления партнерских вознаграждений.
Pretty Links
Pretty Links предназначен для управления короткими ссылками в WordPress. Рассматривайте его, если хотите хранить в одном месте разные перенаправления: партнерские предложения, адреса материалов и другие длинные URL.
| Характеристика | Значение |
|---|---|
| Статистика кликов | Отслеживание переходов; состав отчетов зависит от редакции |
| Среда работы | WordPress |
| Назначение | Управление короткими ссылками и перенаправлениями |
ThirstyAffiliates
ThirstyAffiliates ориентирован на управление партнерскими ссылками в WordPress. Рассматривайте его для каталога партнерских предложений, которые повторяются в разных публикациях. Отдельная запись для предложения помогает менять назначение без редактирования каждой статьи.
| Характеристика | Значение |
|---|---|
| Статистика кликов | Отслеживание переходов; состав отчетов зависит от редакции |
| Среда работы | WordPress |
| Назначение | Управление партнерскими ссылками |
Для обычного перенаправления достаточно одного плагина. Pretty Links подходит по назначению для общего списка коротких адресов. ThirstyAffiliates логичнее рассматривать, когда весь список состоит из партнерских предложений. Не поручайте обоим плагинам обработку одного пути.
Как подготовить ссылку в плагине
При создании записи внесите полный партнерский URL в поле назначения. Для короткого пути используйте понятное имя, например course. Если интерфейс предлагает тип перенаправления, явно выберите 302.
Если нужных полей или настроек нет, используйте серверное правило для Apache или nginx. Оно выполняет ту же задачу без зависимости от интерфейса плагина.
После сохранения откройте короткую ссылку с включенным сетевым журналом. Убедитесь, что ответ передает правильный Location. Отдельно проверьте атрибут rel у ссылки в опубликованном HTML: автоматическое добавление нельзя подразумевать.
Для отката верните в публикацию исходный URL. Удалять плагин стоит после замены всех созданных им адресов.
Сокращатели ссылок
Сокращатель хранит соответствие между длинным адресом и коротким кодом. Вы публикуете короткую ссылку, сервис перенаправляет посетителя на партнерский сайт. Такой способ позволяет сократить реферальную ссылку без собственного хостинга.
Bitly
Bitly – сервис коротких ссылок. Его можно рассматривать как отдельный инструмент для подготовки адресов публикаций вне вашего сайта. При этом полный реферальный URL остается назначением перенаправления.
| Характеристика | Значение |
|---|---|
| Собственный сайт | Не нужен |
| Публикуемый адрес | Короткая ссылка сервиса |
| Независимый учет | Событие на вашей исходной странице |
clck.ru
clck.ru – сокращатель ссылок Яндекса. Его можно рассматривать для разового сокращения адреса без собственного сайта. Назовите получателя перехода в тексте публикации: домен сокращателя сам этого не объясняет.
| Характеристика | Значение |
|---|---|
| Собственный сайт | Не нужен |
| Публикуемый адрес | Короткая ссылка на clck.ru |
| Независимый учет | Событие на вашей исходной странице |
TinyURL
TinyURL – еще один сервис сокращения URL. Его можно использовать для отдельного короткого адреса без настройки своего хостинга. Храните исходный URL отдельно, чтобы сохранить возможность переноса публикаций.
| Характеристика | Значение |
|---|---|
| Собственный сайт | Не нужен |
| Публикуемый адрес | Короткая ссылка сервиса |
| Независимый учет | Событие на вашей исходной странице |
Как выбрать сокращатель под размещение
Для базового сокращения эти сервисы решают одну задачу. Если вам нужны собственные серверные журналы и контроль назначения, выбирайте редирект на своем домене.
| Критерий | Bitly | clck.ru | TinyURL |
|---|---|---|---|
| Нужен свой сайт | Нет | Нет | Нет |
| Кто обслуживает редирект | Bitly | Яндекс | TinyURL |
| Где независимо считать клики | На своей исходной странице | На своей исходной странице | На своей исходной странице |
| Главный риск | Зависимость от сервиса | Зависимость от сервиса | Зависимость от сервиса |
Как получить и проверить короткий адрес
- Подготовьте полный партнерский URL с разрешенными метками.
- Вставьте его в поле длинного адреса выбранного сокращателя.
- Запустите сокращение кнопкой рядом с полем. Скопируйте выданный короткий URL.
- Откройте результат с включенным сетевым журналом браузера. Проследите переход до партнерского домена.
- Сравните идентификатор и метки в запросе назначения с исходными значениями.
Если форма не принимает URL, используйте исходный адрес или собственный редирект. Для отката замените короткую ссылку в публикации на исходную.
Не добавляйте второй сокращатель только ради другого вида адреса. Сторонний домен создает дополнительную зависимость. Отказ сокращателя прерывает путь до предложения, даже если партнерский сайт работает. Собственный домен позволяет перенести управление перенаправлениями на другой сервер.
Пример такой зависимости – закрытие сокращателя goo.gl. Часть старых ссылок отключена, остальные продолжают работать. Закрытие сервиса не означает, что все созданные на нем адреса перестали открываться.
Для долгоживущих материалов предпочтительнее управляемый адрес на собственном домене. Его тоже нужно обслуживать, но смена сервера не требует замены ссылок во всех публикациях.
Как не потерять аналитику кликов
Разделяйте три показателя: клик по публикации, запрос к редиректу и целевое действие. Они описывают разные этапы пути пользователя. Одинаковых значений у этих счетчиков ожидать не стоит.
| Что считать | Где считать | Что означает показатель |
|---|---|---|
| Нажатие на ссылку | Событие на исходной странице | Пользователь активировал ссылку |
| Запрос короткого адреса | Журнал веб-сервера или счетчик перенаправлений | Клиент запросил URL редиректа |
| Засчитанное действие | Кабинет партнерской программы | Программа применила свои правила атрибуции |
Для собственного редиректа откройте журнал обращений веб-сервера, обычно access.log. Отфильтруйте записи по пути /go/course. В терминале Linux или macOS локальную копию журнала можно просмотреть так:
grep ' /go/course ' access.logОдин тестовый переход должен оставить запись запроса, если журналирование включено. Роботы, предпросмотры мессенджеров и повторные открытия тоже создают запросы. Число строк в журнале не равно числу людей.
Если плагин или сокращатель показывает клики, откройте статистику конкретной ссылки. Выполните тестовый переход и найдите его среди последних событий. Фильтрация повторов и роботов может давать расхождения с серверным журналом.
Для Яндекс Метрики различайте внешний переход и JavaScript-событие. Адрес /go/course принадлежит вашему домену, поэтому обычный учет внешних ссылок может его не охватить. Для такого пути подходит отдельная цель на событие клика.
В настройках целей вашего счетчика создайте цель типа «Целевое событие». Задайте идентификатор affiliate_click. После загрузки кода счетчика добавьте обработчик на исходную страницу:
document.addEventListener('click', function (event) {
const target = event.target;
if (!(target instanceof Element)) return;
const link = target.closest('a[href]');
if (!link) return;
const url = new URL(link.href, window.location.href);
if (url.origin !== window.location.origin) return;
if (!url.pathname.startsWith('/go/')) return;
if (typeof window.ym === 'function') {
window.ym(COUNTER_ID, 'reachGoal', 'affiliate_click');
}
});Замените COUNTER_ID числовым номером вашего счетчика. Обработчик не меняет href и не отменяет переход. После тестового клика найдите достижение созданной цели в отчете Метрики.
Событие браузера может не отправиться из-за блокировщика или закрытия страницы. Серверный журнал используйте как независимый источник запросов к редиректу. Окончательное начисление смотрите в партнерском кабинете.
Если цель не удается создать, учитывайте обращения через серверный журнал. Чтобы отключить браузерный учет, удалите добавленный обработчик со страницы.
Задавайте UTM-метки непосредственно в целевом URL. В приведенных серверных правилах они уже встроены в назначение. Метки, добавленные только к короткому адресу, автоматически туда не переносятся.
Сократите цепочку до одного управляемого перенаправления, где это возможно. Каждый промежуточный сервис может изменить параметры или добавить задержку. Заголовок Referer зависит также от политики браузера и сайта. Передача UTM-меток не требует наличия этого заголовка.
Маркировка рекламы и раскрытие партнерских ссылок
Раскрытие партнерства, поисковый атрибут и маркировка рекламы решают разные задачи. Текст рядом со ссылкой объясняет отношения читателю. Атрибут rel описывает характер ссылки для поисковых систем. Маркировка относится к оформлению рекламного размещения.
Само наличие реферального параметра не дает универсального ответа о рекламе. Оценивают содержание публикации, ее цель и обстоятельства размещения. Акцент на покупке, рекламные обещания, договоренность о продвижении и вознаграждение требуют отдельной правовой оценки. Личная передача приглашения и публичный рекламный обзор не равнозначны.
Первоисточник требований к интернет-рекламе – Федеральный закон «О рекламе». Для размещения, которое квалифицируется как интернет-реклама, предусмотрены рекламная маркировка, идентификатор erid и передача сведений через ОРД. Согласуйте с рекламодателем, кто получает идентификатор и передает данные.
Обычная надпись «партнерская ссылка» не заменяет оформление рекламы. Наличие вознаграждения тоже не позволяет автоматически классифицировать любую публикацию. Правовой статус конкретного размещения оценивают по его содержанию и обстоятельствам.
Если идентификатор включен в URL, сохраните его при сокращении и перенаправлении. Не удаляйте параметры, которые передал рекламодатель. Проверьте их прохождение тем же способом, что и реферальный идентификатор.
Для рекламы и оплаченных размещений используйте атрибут rel="sponsored". Несколько значений rel можно перечислить через пробел: rel="sponsored nofollow". Атрибуты не скрывают партнерство от пользователя и не заменяют рекламную маркировку.
Правила Google о поисковом спаме отдельно рассматривают обманные перенаправления. Риск возникает, когда редирект обманывает пользователя или поисковую систему относительно назначения страницы. Само серверное перенаправление партнерской ссылки не делает ее обманной. Сохраняйте понятный текст ссылки и не подменяйте обещанное предложение.
Разместите раскрытие рядом с рекомендацией, до перехода. Формулировка «Я могу получить вознаграждение за покупку по этой ссылке» объясняет связь без технических терминов. Вопрос о рекламном статусе конкретной публикации такая фраза сама по себе не решает.
Ошибки при маскировке реферальных ссылок
Большинство технических ошибок видно в первом ответе редиректа. Проверяйте опубликованную ссылку целиком, начиная с нажатия в статье.
- Пробел в идентификаторе. Значения
ref=123иref=%20123различаются. Копируйте идентификатор без ручного добавления пробелов. - Второй вопросительный знак. Строка
?ref=123?utm_source=blogне создает отдельную UTM-метку. После первого параметра используйте&. - Параметры только на коротком адресе. Правило с фиксированным назначением может их отбросить. Внесите разрешенные метки в целевой URL.
- Цепочка сокращателей. Несколько посредников увеличивают число точек отказа. Публикуйте один короткий адрес, ведущий к предложению.
- Изменение адреса после 301. Кэш может сохранить старое назначение. Для сменяемых предложений выбирайте 302 и управляйте кэшированием.
- Совпадение пути с другой страницей. Плагин и сервер могут обрабатывать один
/go/course. Оставьте одного владельца маршрута. - Неподходящий домен сокращателя. Фильтры площадки или правила партнерки могут отклонить короткий URL. Не используйте перенаправление для обхода прямого запрета программы.
- Потеря раскрытия партнерства. Аккуратный адрес не объясняет коммерческую связь. Добавьте пояснение рядом с рекомендацией.
Какой способ выбрать для своих ссылок
Для сайта с доступом к конфигурации используйте собственный редирект 302. Он позволяет хранить назначения централизованно и учитывать запросы на сервере. Для редактора WordPress удобен плагин управления ссылками, если его настройки закрывают вашу задачу.
Для отдельного размещения без сайта подходит сокращатель. Для ссылок между несколькими проектами полезен отдельный брендированный домен. В любом варианте храните исходный URL и проверяйте конечный запрос.
Совет от нашей редакции: ведите таблицу коротких адресов, назначений и мест публикации. Она поможет заменить предложение, найти потерянные метки и убрать ссылку после завершения сотрудничества.
Комментарии