Георедирект по странам на определенный домен
webictusЧто такое Георедирект и как он работает
Георедирект — плагин для Shop-Script на Webasyst: определяет страну посетителя по IP и автоматически перенаправляет его на нужный домен, привязанный к этой стране. При редиректе сохраняется текущая страница, путь и GET-параметры.
Работает с несколькими источниками GeoIP — можно использовать внешний API, локальную базу Sypex Geo или сервис DaData. Для локального режима Sypex Geo данные хранятся на вашем сервере и могут обновляться по cron.
Что умеет плагин
Определять страну посетителя по IP.
Перенаправлять посетителя на домен, связанный с его страной.
Сохранять URL страницы при редиректе: каталог, товар, параметры фильтра, UTM-метки и другие GET-параметры.
Использовать домен по умолчанию для стран, которых нет в списке привязок.
Не перенаправлять поисковых роботов.
Кэшировать страну посетителя в cookie, чтобы не выполнять проверку при каждом открытии страницы.
Защищаться от циклических редиректов через параметр _gr=1 .
Вести отладочный лог для диагностики.
Что вы получаете
Автоматическое распределение посетителей по региональным или страновым доменам.
Гибкую таблицу привязок «страна → домен» в админке.
Отдельный домен по умолчанию для всех остальных стран.
Выбор источника определения страны по IP.
Возможность работать через локальную базу Sypex Geo без постоянных внешних запросов.
Где настраивать — Настройки → Плагины → Георедирект : включение плагина, выбор GeoIP API, домен по умолчанию, кэширование, исключение ботов и отладочный режим.
Основные сценарии использования
Редирект посетителя на домен своей страны
Например, посетитель из России открывает example.com/catalog/ .
Плагин определяет страну RU .
Находит привязку RU → example.ru .
Перенаправляет на https://example.ru/catalog/?_gr=1 .
Страна не указана в таблице
Если для страны посетителя нет отдельной привязки, используется домен по умолчанию.
Например, для Германии нет записи, а домен по умолчанию — example.com .
Посетитель будет перенаправлен на домен по умолчанию с сохранением текущего URL.
Несколько доменов одного магазина
Можно настроить отдельные домены для России, Казахстана, Беларуси, Украины, Европы или других направлений.
Домены берутся из раздела «Сайт» Webasyst, вручную вводить домены в привязках не нужно.
Локальное определение страны через Sypex Geo
Выберите источник Sypex Geo в настройках.
Создайте или обновите локальную базу кнопкой в админке.
После этого страна определяется по локальному файлу базы на сервере.
Источники определения страны по IP
Источник по умолчанию.
Не требует API-ключа.
Подходит для быстрого старта.
Точность по РФ: высокая.
Для работы нужен API-ключ DaData.
Ключ можно получить в личном кабинете DaData: зарегистрируйтесь, откройте раздел API-ключей и скопируйте токен.
Точность по РФ: средняя/высокая.
Работает через локальную базу данных.
Базу можно создать и обновить из админки плагина.
Можно настроить автоматическое обновление через cron.
Точность по РФ: средняя.
Может использоваться как альтернативный внешний источник.
Привязки «Страна → Домен»
Код страны — ISO 3166-1 alpha-2, например RU , KZ , BY , US .
Название страны — заполняется автоматически при выборе страны из списка.
Домен — выбирается из доменов, добавленных в Webasyst.
По умолчанию — домен для всех стран, для которых нет отдельной записи.
Активно — можно временно отключить привязку без удаления.
Как работает редирект
Посетитель открывает страницу магазина.
Плагин проверяет, включён ли георедирект.
Если включено исключение ботов, поисковые роботы не перенаправляются.
Плагин получает IP посетителя.
Определяет страну выбранным способом: ipwho.is , DaData , Sypex Geo или Ip-api.ru .
Ищет активную привязку страны к домену.
Если привязка найдена, сравнивает текущий домен с целевым.
Если домен отличается, выполняет временный редирект 302 .
Если страна не найдена в таблице, используется домен по умолчанию.
Защита от зацикливания
При редиректе к URL добавляется параметр _gr=1 .
Если страница уже открыта с параметром _gr=1 , повторный редирект не выполняется.
Это защищает от ситуации, когда разные домены перенаправляют посетителя друг на друга.
Кэширование
Плагин может сохранять код страны в cookie georedirect_country .
Это уменьшает число запросов к внешнему API.
Время хранения cookie задаётся в настройках в часах.
Для разных доменов cookie могут работать отдельно, поэтому после перехода на другой домен возможна повторная проверка.
Sypex Geo и cron
Для Sypex Geo плагин создаёт локальную базу в каталоге wa-apps/shop/plugins/georedirect/data/ .
Базу можно обновлять вручную кнопкой в настройках.
Для автоматического обновления используйте стандартный CLI Webasyst:
php /var/www/u42222/data/www/axisauto/cli.php shop georedirectSypexGeo
Команду можно добавить в cron, например запускать один раз в день ночью.
Что можно настроить
Включение или выключение плагина.
Источник GeoIP: ipwho.is , DaData , Sypex Geo , Ip-api.ru .
API-ключ DaData.
Локальную базу Sypex Geo.
Домен по умолчанию.
Кэширование страны в cookie.
Время кэша в часах.
Исключение поисковых роботов из редиректа.
Отладочный лог.
Таблицу привязок стран к доменам.
Где это в админке
Настройки плагина — включение, выбор GeoIP API, параметры кэша, домен по умолчанию, Sypex Geo, DaData и отладка.
Привязки «Страна → Домен» — отдельная страница управления странами и доменами, ссылка находится вверху настроек плагина.
Частые вопросы
Нужен ли API-ключ? Не всегда. Для ipwho.is ключ не нужен. Для DaData нужен API-ключ. Для Sypex Geo используется локальная база.
Можно ли не отправлять IP во внешний сервис? Да. Используйте Sypex Geo , тогда определение страны выполняется по локальной базе на сервере.
Что будет, если API недоступен? Плагин не делает редирект и оставляет посетителя на текущем домене.
Можно ли временно отключить отдельную страну? Да, у каждой привязки есть флаг «Активно».
Можно ли сохранить текущую страницу при редиректе? Да, путь и GET-параметры сохраняются.
Почему используется редирект 302? Это временный редирект: браузер не запоминает его навсегда, и настройки можно безопасно менять.
Нужна помощь с настройкой под ваш магазин? Пишите на scc.lac@mail.ru или в Telegram @web_stu .





