Обязательные параметры ссылки
С обязательными параметрами ссылки («Только по ссылке») сайт открывается только тем, кто пришёл по вашей ссылке, например из рекламы в Instagram: https://example.com/?ref=metaads. Все остальные, включая тех, кто вводит адрес вручную, конкурентов, ботов-проверяльщиков рекламы и краулеры, получают страницу блокировки (по умолчанию 404) или перенаправление.
Так удобно прятать посадочную страницу или закрытую акцию, которую должна видеть только аудитория одной кампании или закрытая группа.
Включается в настройках сайта: вкладка Дополнительно, Обязательные параметры ссылки. Когда функция включена, в списке сайтов у сайта появляется значок Только по ссылке, а в разделе показан пример ссылки, которая открывает сайт, с кнопкой для копирования.
Параметры
Добавьте до 20 параметров. У каждого есть имя и проверка:
| Проверка | Совпадает, когда параметр… | Примеры значений |
|---|---|---|
| равен одному из | в точности равен одному из значений | metaads, instagram |
| начинается с | начинается с одного из значений | summer совпадает с summer-sale |
| содержит | содержит одно из значений | promo совпадает с ig-promo-2 |
| присутствует (любое значение) | есть в адресе с любым значением, даже пустым |
- Значения разделяются запятыми, до 50 на параметр, каждое до 200 символов.
- Чтобы сравнивать значения параметра без учёта регистра, отметьте у него любой регистр. Без этой галочки
MetaAdsне равноmetaads. - Имя параметра всегда сравнивается точно:
refиREFэто разные параметры. Имена не могут содержать пробелы,&,=,#или?. - Если параметр встречается в адресе несколько раз, совпасть может любое из его значений.
Затем выберите, как они сочетаются:
- При Любого (по умолчанию) достаточно одного совпавшего параметра. Так удобно вести несколько кампаний, у каждой из которых своя ссылка.
- При Все должны совпасть все параметры, например
ref=metaadsи наличиеcampaign.
Запоминание посетителя
По вашей ссылке открывается только первая страница. Стили, картинки и скрипты, которые она загружает, и следующие страницы, куда переходит посетитель, параметра уже не содержат, поэтому посетитель, пришедший по ссылке, получает пропуск.
Помнить посетителя, часов (по умолчанию 24, от 0 до 8760, то есть год) задаёт, сколько действует пропуск.
- Пропуск это cookie с именем
wp_entry. ОнHttpOnly,SameSite=Lax, действует для всего сайта (Path=/) иSecureна HTTPS. - Его нельзя подделать или продлить: он содержит время окончания и подписан HMAC-SHA256 с секретом, который принадлежит сайту. Секрет никогда не показывается в панели и не попадает в экспорт настроек.
- Если уменьшить время, уже выданные пропуска сразу станут короче: пропуск длиннее, чем позволяет текущая настройка, считается выданным сегодня.
- Отозвать все выданные пропуска (применяется при сохранении) создаёт новый секрет: все пропуска становятся недействительными, и всем снова нужна ссылка.
- Значение 0 означает, что пропусков нет совсем: каждый запрос должен содержать параметр, так что на практике открывается только сама страница из ссылки (вместе с файлами, которые пропускаются, см. ниже).
Пропуска, выданные Small Web Panel 1.x (cookie swp_entry), остаются действительными и перевыдаются под новым именем.
Запоминание IP-адреса
Запоминать и IP-адрес посетителя (по умолчанию включено) запоминает адрес посетителя на то же время, что и пропуск; для IPv6 весь его /64.
- Другой браузер или приложение с того же адреса проходит без ссылки и сразу получает собственный пропуск, который заканчивается вместе с пропуском адреса. Это помогает, когда реклама открывается во встроенном браузере Instagram, а посетитель потом переходит в Safari или Chrome.
- Если посетитель с действующим пропуском приходит с нового адреса (телефон переключился с Wi-Fi на мобильный интернет), этот адрес тоже запоминается.
- Мобильный оператор или офис часто выводит много людей через один адрес, и пройдут все они.
Запомненные адреса переживают перезапуск панели. Они раз в минуту сохраняются в /var/lib/wardpane/entry-ips.json. Каждый адрес хранится как HMAC с секретом сайта, поэтому по одному лишь файлу нельзя восстановить список ваших посетителей. Отозвать все выданные пропуска очищает и их. Хранится не больше 100 000 адресов; самые старые удаляются первыми.
Адрес Cloudflare никогда не запоминается. Если сайт проксируется через Cloudflare, но «За Cloudflare» выключено, все приходят с адресов Cloudflare: запоминание одного из них открыло бы сайт всем, кто использует тот же сервер Cloudflare. В этом случае привязка к IP не работает; включите За Cloudflare.
Стили, скрипты, картинки и медиа
Если включено Пропускать стили, скрипты, картинки, шрифты и медиа (так по умолчанию), запросы к таким файлам проходят без ссылки: css, js, mjs, map, png, jpg, jpeg, gif, webp, avif, svg, ico, bmp, woff, woff2, ttf, otf, eot, mp4, webm, mp3, wav, ogg, m4a. Тогда страницы выглядят правильно и в браузерах, которые отказываются от cookie, и при запоминании, равном 0.
Пропускаются только реально существующие файлы, так что запрос к выдуманному /x.css не доберётся до одностраничного приложения, фронт-контроллера PHP или переписанного маршрута. Данные и документы (json, xml, pdf и остальные) остаются за фильтром. Эти файлы можно открыть по прямому адресу без ссылки; выключите опцию, если это важно.
Пути, которые всегда открыты
Пути перечисляются в поле Всегда открывать эти пути, по одному на строку, до 100. По умолчанию там /.well-known/, /robots.txt и /favicon.ico.
| Запись | Открывает |
|---|---|
/privacy |
ровно /privacy и /privacy/ |
/blog/ |
/blog и всё внутри /blog/ |
/promo* |
все пути, начинающиеся с /promo (/promo, /promo-2024, /promotions/x) |
Добавьте все адреса, к которым другие сервисы обращаются сами. В их запросах никогда нет вашей ссылки, и они получили бы 404:
- обратные вызовы платёжных систем и вебхуки (Stripe, PayPal, ЮKassa и так далее),
- мониторинг доступности,
- URL для cron,
- страницы, которые должны оставаться публичными, например политика конфиденциальности или условия, на которые ссылается рекламная платформа.
Удаление параметров из адресной строки
Если включить Убирать параметры из адресной строки после входа (по умолчанию выключено), посетитель, пришедший по ссылке, перенаправляется (302) на тот же адрес без ваших параметров. В адресной строке остаётся чистый адрес, и его реже пересылают вместе с параметром. Остальные параметры, например fbclid и utm_source, сохраняются.
- Работает только на основном домене сайта и только для запросов
GET. - Аналитика на странице не увидит ваши параметры.
- Браузер, который отказывается от cookie, вообще не сможет открыть страницу: он теряет параметр, а пропуска у него нет.
Что получают посетители без ссылки
Выберите, что они получат:
- Показывать страницу: простую 404 (по умолчанию) или ваш собственный файл со статусом 404, 403 или 200. См. Страницы блокировки.
- Перенаправлять на другой адрес (
http://илиhttps://), например на ваш профиль в Instagram. Адрес не должен вести обратно в фильтр: перенаправление на сам сайт зациклилось бы, поэтому панель его не принимает, если только целевой путь не входит в список всегда открытых.
Кэширование
Один и тот же адрес отвечает по-разному с пропуском и без него, поэтому каждый ответ, который зависит от пропуска, содержит Vary: Cookie и Cache-Control: private (значение public или s-maxage, заданное сайтом, заменяется), а перенаправления содержат Cache-Control: no-store. С такими заголовками Cloudflare или другой кэш не отдаст посетителю без ссылки страницу, которую получил посетитель со ссылкой.
Домены
Пропуск выдаётся для того домена, на который пришёл посетитель. www.example.com и example.com это разные домены с разными пропусками: если ваш сайт перенаправляет с одного на другой, ведите ссылку на конечный.
Место в порядке проверок
Фильтр работает после всех остальных фильтров (чёрный список, лимит запросов, Bot Fight Mode, гео-блокировка, устройства, защита от хотлинка) и перед паролем сайта. Посетитель со ссылкой по-прежнему проходит всю защиту. Отказы учитываются в статистике сайта.
От чего это не защищает
Тот, у кого есть ссылка, может ею поделиться, а пропуск можно скопировать вместе с браузером. Обязательные параметры ссылки убирают страницу с глаз широкой публики. Для всего секретного есть Защита паролем.
Старые версии панели не знают эту настройку: после отката на такую версию сайт открывается всем.
Посадочная страница для рекламы в Instagram
Вы запускаете рекламу в Instagram и хотите, чтобы посадочная страница https://example.com/ открывалась только тем, кто нажал на рекламу. Все остальные должны попадать на ваш профиль в Instagram.
- В объявлении укажите ссылку на сайт
https://example.com/?ref=metaads. Meta добавляет свой параметрfbclid; это не мешает. - В разделе сайта Обязательные параметры ссылки: включите его, выберите Любого, добавьте параметр
ref, проверку равен одному из, значениеmetaads. - Оставьте Помнить посетителя, часов равным 24 и Запоминать и IP-адрес посетителя включённым: люди часто открывают рекламу во встроенном браузере Instagram и продолжают потом в Safari или Chrome.
- Оставьте Пропускать стили, скрипты, картинки, шрифты и медиа включённым.
- В Всегда открывать эти пути оставьте значения по умолчанию и добавьте страницу политики конфиденциальности, на которую ссылается рекламная платформа, и вебхук вашей платёжной системы, если страница принимает оплату, например
/privacyи/api/payment-callback. - Выберите Перенаправлять и введите
https://www.instagram.com/yourpage. - При желании отметьте Убирать параметры из адресной строки после входа, чтобы посетитель, скопировавший адрес, не поделился рабочей ссылкой.
Сохраните, затем откройте пример ссылки из раздела, чтобы убедиться, что страница открывается, и голый адрес, чтобы убедиться, что вас перенаправляет.