Общий QR-код — для администратора сайта

Страница для того, кто ведёт сайт заведения. Её можно переслать как есть. Задача — чтобы адрес на сайте заведения вёл на страницу выбора мессенджера Нямбота. Тогда на упаковке и в рекламе печатается адрес заведения, а не Нямбота.


Что нужно сделать#

Два адреса возьми у владельца. Оба есть в СРМ Нямбота, в карточке общего QR-кода:

ЧтоПримерГде в СРМ
Адрес на сайте заведения — его зашили в QR-кодhttps://твойсайт.ru/app«Адрес в QR-коде»
Адрес Нямбота — куда вестиhttps://nyambot.ru/go/твой-адрес«Адрес Нямбота»

твой-адрес — не текст, который надо вписать, а адрес конкретного кода: его задают при создании кода, он стоит после nyambot.ru/go/. твойсайт.ru/app — тоже заготовка: подставь домен сайта заведения и путь, который выбрал владелец.

Пример. Сайт заведения — pizzeria-example.ru, владелец завёл код с адресом pizzeria-lenina и выбрал путь /app. Тогда:

ЧтоЗначение
Адрес в QR-кодеhttps://pizzeria-example.ru/app
Адрес Нямботаhttps://nyambot.ru/go/pizzeria-lenina
Строка для nginxlocation = /app { return 302 https://nyambot.ru/go/pizzeria-lenina; }
Строка для ApacheRedirect 302 /app https://nyambot.ru/go/pizzeria-lenina
Проверкаcurl -sI https://pizzeria-example.ru/app → location: https://nyambot.ru/go/pizzeria-lenina

Во всех командах ниже подставляй так же.

Нужна переадресация 302 с первого адреса на второй. Лучше 302, а не 301: браузеры запоминают 301 насовсем, и если заведение когда-нибудь поменяет, куда ведёт адрес, вернувшиеся гости уйдут на старый.

Требования:

  • адрес на сайте открывается по https с действующим сертификатом;
  • переадресация ведёт прямо на адрес Нямбота или цепочкой не длиннее пяти шагов;
  • путь совпадает точно: /app, а не /app/ (или настрой оба).

nginx#

В блок server домена, который слушает 443:

location = /app { return 302 https://nyambot.ru/go/твой-адрес; }

Если QR-код ведёт на отдельный поддомен, например menu.твойсайт.ru, — отдельный server на весь поддомен:

server {
    listen 443 ssl;
    server_name menu.твойсайт.ru;
    ssl_certificate     /путь/к/fullchain.pem;
    ssl_certificate_key /путь/к/privkey.pem;
    return 302 https://nyambot.ru/go/твой-адрес;
}

Проверить и применить без остановки сайта:

sudo nginx -t && sudo systemctl reload nginx

🔴 Направить поддомен на nyambot.ru записью DNS (CNAME) нельзя: сервер Нямбота чужие домены не обслуживает, гость увидит ошибку сертификата.


Apache#

В .htaccess в корне сайта (или в конфиге виртуального хоста):

Redirect 302 /app https://nyambot.ru/go/твой-адрес

Конструктор сайтов#

В настройках сайта раздел «Переадресации» или «Редиректы»: откуда — /app, куда — https://nyambot.ru/go/твой-адрес, тип — 302 (временная), если конструктор даёт выбрать. Опубликуй сайт заново, если конструктор этого требует.


Вместо переадресации — страница-файл#

Если переадресацию настроить негде, можно выложить готовую страницу. Владелец скачает её в СРМ: карточка кода → «Изменить» → «Свой домен» → «Скачать страницу». Это один HTML-файл без внешних зависимостей.

Положи его так, чтобы он открывался по адресу на сайте заведения. Для https://твойсайт.ru/app:

mkdir -p /var/www/твойсайт.ru/app
cp твой-адрес.html /var/www/твойсайт.ru/app/index.html

Путь к корню сайта подставь свой. Переходы в СРМ при этом не считаются, а при смене бота файл нужно выложить заново — переадресация удобнее.


Как проверить#

curl -sI https://твойсайт.ru/app

В ответе должно быть HTTP/2 302 (или 301) и строка location: https://nyambot.ru/go/твой-адрес. Для страницы-файла — 200, а в коде страницы строка <meta name="nyambot-qr" content="твой-адрес">.

После этого владелец нажимает «Проверить» в карточке кода в СРМ — Нямбот сам откроет адрес и подтвердит, что всё ведёт куда нужно.


Если что-то не так#

«Проверить» в СРМ отвечаетЧто поправить
Адрес ведёт не на страницу этого QR-кода«куда» в переадресации: адрес Нямбота целиком, без опечаток; не больше пяти переадресаций подряд
Сайт ответил ошибкойпуть /app не настроен или файла нет (404)
До сайта не достучатьсядомен не отвечает или нет действующего сертификата https
Этот адрес проверить нельзяадрес ведёт во внутреннюю сеть — нужен публичный адрес

Вопросы — владельцу заведения или в поддержку Нямбота.