Как настроить изменяемое перенаправление или содержимое для QR кода на своём сервере

Nil
6 марта 2023 обновлено 8 марта 2025
 Как настроить изменяемое перенаправление или содержимое для QR кода на своём сервере
Демонстрация супер-динамического QR-кода - в конце, ниже. А сначала разберёмся в том, как это всё работает...

Изменить содержимое QR кода нельзя. Уникальный рисунок каждого QR-кода зависит от тех букв и цифр (ссылка, номер телефона, текст), которые в нём зашифрованы. При сканировании QR кода всегда будут выводиться именно эти данные. Чтобы изменить результат сканирования QR-кода нужно изменить его рисунок.

При использовании QR-кода в коммерческих целях иногда возникает ситуация, что после распространения QR кода нужно изменить некоторые данные - номер телефона, или адрес страницы.

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

Нужно предусмотреть заранее

В тех случаях, когда есть вероятность, что в будущем потребуется изменить результат сканирования QR-кода, нужно использовать промежуточный адрес, с которого будет выполняться переадресация на целевую страницу сайта, социальной сети, страницу товара на маркетплейсе или к чату с вами в мессенджере.

Для наглядного представления разницы - две схемы.

Схема работы QR-кода с прямой ссылкой



Схема работы QR-кода с прямой ссылкой на постоянную промежуточную страницу и дальнейшей переадресацией на текущую целевую страницу



Динамические QR-коды

Для этих целей можно использовать сервисы по созданию QR-кодов, которые предоставляют подобные услуги. В этом случае, при сканировании кода пользователь сначала направляется на постоянную страницу на сайте такого сервиса, в QR-коде содержится ссылка именно на эту страницу. Затем сканирующий автоматически переадресуется в нужном направлении. Адрес зашитый в "QR-код" не меняется никогда, но вы можете менять настройки переадресации. Или можете создать на таком сервисе страницу со своей информацией и ссылками на свои соцсети. В этом и заключается суть того, что иногда называют "динамические QR-коды" или "хостинг QR-кодов".

Разумеется, такие услуги платные. Плюс такого варианта в том что легче начать - не нужно разбираться в технических деталях. Минус в том, что ваш код будет навсегда привязан к выбранному "хостингу QR-кодов". Если сервис прекратит свою работу или изменит условия обслуживания - настроить QR-код на другой вариант вы уже не сможете.

Подобное можно организовать и самостоятельно. Вы можете зарегистрировать собственный домен (адрес сайта), в куар код "зашить" ссылку привязанную к вашему домену. В дальнейшем вам нужно ежегодно продлевать свой домен. При этом вы сможете менять настройки QR-кода, менять хостинг, где хранятся файлы и даже перейти к другому регистратору доменов, оставив свой домен за собой.

Пошаговая инструкция

Здесь будет пошагово описано - как создать "динамический QR-код" своими силами.

Для этого потребуется:
1. Зарегистрировать домен;
2. Арендовать хостинг для сайта;
3. Создать и настроить один файл по инструкции ниже.

Фактически вы создаёте сайт, но он будет состоять всего из одного файла и выполнять всего одну функцию.

1. Заказать хостинг.

Сейчас я пользуюсь услугами хостинга "Бегет" (этот сайт размещён там), поэтому инструкция будет на примере этого хостинга и регистратора доменов. Вы можете использовать любой другой хостинг, общий принцип действий будет похожим, но детали могут немного отличаться.

Перейдите на beget.com и зарегистрируйтесь.



Во время регистрации вам будет сразу предложено выбрать тарифный план хостинга. По умолчанию предлагается тариф Start - этого будет достаточно. Первые тридцать дней вы сможете пользоваться услугами хостинга бесплатно (тестовый период), потом нужно будет оплачивать согласно тарифному плану.

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

2. Зарегистрировать домен.

Домен это имя любого сайта и его адрес, который виден в адресной строке. Пример: unila.ru. Вы можете зарегистрировать домен у любого регистратора, который предоставляет такую услугу. Если на Бегете, то после регистрации на главной странице нажмите "Домены и поддомены" - потом выбирайте вкладку "Регистрация домена".


Введите в окошко вариант домена на латинице, например mysuperdomen2024.ru. Если указанный вами вариант свободен, зарегистрируйте домен. Подождите несколько часов, пока домен начнёт работать и при вводе его адреса в адресную строку браузера будет открываться страница с текстом о том, что домен зарегистрирован или сайт создан.

3. Включить SSL сертификат.

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

В меню выберите пункты: Домены - Мои домены.
Напротив названия вашего домена найдите опцию с надписью SSL и кликните по ней, чтобы включить SSL сертификат. Если вы только что зарегистрировали домен и получили сообщение об ошибке включения сертификата, попробуйте через несколько часов. Если не смогли разобраться с этим вопросом, просто напишите в службу поддержки и попросите включить SSL сертификат для вашего домена.



4. Привязать домен к папке с вашими будущими файлами

Откройте в меню Сайты - Создать сайт. Введите названием вашего домена и нажмите создать. Потом в строке где указан ваш домен и public_html (как на скриншоте) нажмите на символ с плюсом "Прикрепить домен" и выберите в открывшемся окне ваш домен, который вы недавно зарегистрировали.



5. Создать скрипт для перенаправления.

В меню выберите пункт: Файловый менеджер. В открывшемся окне кликните по названию вашего домена, потом - public_html.

Таким образом вы попали в главную, корневую папку вашего сайта. Здесь уже есть один файл и он называется index.php, откройте его кликнув по названию.



Открывается окно редактирования этого файла. Удалите всё содержимое файла. И вставьте вместо него следующий код:

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '1'){
header("Location: https://unila.ru");
}
?>

Вместо https://unila.ru вставьте ссылку на страницу в социальной сети, ссылку на видеоролик на видеохостинге, профиль в Telegram, чат в Telegram, чат в WhatsApp - куда человек должен попасть после сканирования вашего кода.

Например, если вы хотите, чтобы после сканирования вашего кода открывался сайт Вконтакте, код будет выглядеть так:

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '1'){
header("Location: https://vk.com");
}
?>


Если вы хотите, чтобы после сканирования кода открывался канал в Телеграм, код будет выглядеть так (замените unilaru на название нужного канала):

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '1'){
header("Location: https://t.me/unilaru");
}
?>

Если вы хотите чтобы открывался не канал в Телеграм а чат с вами в Телеграм, вместо названия канала, в коде выше укажите свой username в Телеграм.

Если вы хотите, чтобы открывался чат с вами в WhatsApp, код будет выглядеть так:

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '1'){
header("Location: https://wa.me/7XXXXXXXXXX");
}
?>

Замените 7XXXXXXXXXX на ваш номер телефона в международном формате без символа +

Если вы хотите чтобы открывался чат с вами в WhatsApp и был заранее установлен текст сообщения, код будет выглядеть так:

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '1'){
header("Location: https://wa.me/7XXXXXXXXXX?text=".urlencode("Какой то текст для отправки"));
}
?>

Замените номер и текст

5. Создайте QR-код, который будет содержать только ссылку на ваш домен/сайт, и подставьте в конце символы "?qr=1"


Пример: https://unila.ru?qr=1

Любой кто просканирует ваш код, получит в ответ эту ссылку. Когда он перейдёт по ней, благодаря действиям, которые мы выполнили на предыдущих шагах, он будет моментально автоматически направлен в нужном направлении.

Если однажды потребуется, чтобы при сканировании того же самого QR-кода перенаправление выполнялось по новому адресу, или изменить текст сообщения для WhatsApp, просто вернитесь к пункту 4 этой инструкции и измените данные в файле index.php.

Если в будущем вы захотите использовать этот же сайт для обработки другого QR-кода, снова используйте ссылку на ваш сайт, но установите другой параметр в конце домена - "?qr=2"

И дополните содержимое файла index.php новыми строками, предназначенными для обработки второго QR:

<?php
if(isset($_GET["qr"]) && trim($_GET["qr"]) == '2'){
header("Location: https://t.me/unilaru");
}
?>

Или, при желании, вы сможете устроить так, что бы при сканировании кода, открывалась страница на вашем сайте (без перенаправления куда-либо) и на этой странице выводить какую то информацию, блок ссылок. Подробно описывать этот момент не буду, потому что это уже другая тема.

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

P.S. - пример динамического QR-кода

Отсканировав этот код несколько раз подряд вы увидите, что результат разный. Сначала открывается один канал в Телеграм, потом - другой. При этом, если ваш сканер показывает вам ссылку, которая непосредственно зашита в коде, вы можете видеть, что она всегда одна и та же (тот самый промежуточный адрес), но результат перехода по этой ссылке - разный. В данном случае я изменил настройки так, что при каждом сканировании QR-кода направление переадресации меняется автоматически (выбирается случайная ссылка из списка).

Комментарии