В модуле доступен функционал, позволяющий перенаправлять пользователей на поддомен сайта для конкретного города. Вы можете добавлять неограниченное количество поддоменов.
Указывать полностью поддомен, напрмер moskva.bxmaker.ru
. Можно указывать не только поддомены но и домены отличные от текущего.
Все описанное тут - только пример, на нашем сайте не используются поддомены, поэтому тестировать на нашем сайте не стоит.
Для реализации задачи, выполните все шаги указанные далее.
Ваш сайт должен открываться с поддоменов, для этого необходимы соответствующие записи DNS, в частности A
запись. В пример на картинке ниже IP адрес нашего сервера, в вашем случае будет IP адрес вашего сервера (хостинга).
На хостинге сайта должна быть включена возможность использования поддоменов, для примера можно указать адрес moskva.bxmaker.ru
, при переходе по этому адресу должен отображаться сайт.
Если вы используете домен начинающийся с www
, то в правилах .htaccess
добавьте строки проверяющие поддомен, в таком случае пользователь обязательно будет либо на www.bxmaker.ru
или на соответствующуме региону piter.bxmaker.ru
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^piter\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^moskva\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.bxmaker.ru/$1 [R=301,L]
Для кирилических поддоменов, необходимо указывать предварительно сконвертировав в Punycode
.
Например москва.сайт.ру
-> xn--80adxhks.xn--80aswg.xn--p1ag
Перекодировать можно например здесь
Имеется ввиду что будет использоваться один и тот же сайт битрикса, и не будет переходов между сайтами на одной и тойже копии битрикса.
Для примера будем считать что наш домен domen.loc
и он по умолчанию для всех городов,
но для Санкт-Петербурга и Калуги нужно чтобы сайт перебрасывал пользователя на поддомены piter.domen.loc
и kaluga.domen.loc
Настраиваем сайт и проверяем чтобы он открывался по указанным адресам - domen.loc
, piter.domen.loc
, kaluga.domen.loc
Настройки / Настройки продукта / Сайты / Список сайтов
Далее изменяем список избранных местоположений для удобства проверки. Добавляем там регионы - для быстрого переключения во время тестирования
BXmaker / Определение местоположения по IP 2.0 / Избранные местоположения
Этот список должен быть указан в компоненте bxmaker:geoip.city
в шапке сайта (в шаблоне сайта)
Теперь настраиваем переадресацию между доменами, чтобы при выборе пользователем города Калуга он был автоматически переброшен на поддомен kaluga.domen.loc
. А при выборе города Москва, Самара или любой другой не из списка был переадресован на домен domen.loc
BXmaker / Определение местоположения по IP 2.0 / Домены
При этом в настройках модуля отключено приоритеты доменов
BXmaker / Определение местоположения по IP 2.0 / Настройки
Таким образом если человек перешел на domen.loc
, но по IP адресу удалось определить что он из Калуги, он автоматически будет переадресован на сайт kaluga.domen.loc
и наоборот на базовый домен если он не из Калуги.
Этот вариант подходит когда есть заданный набор городов и доменов, но пользователь может указать свой город не из списка. При этом если город соответствует конкретному домену - он будет переадресован на него.
Если город введенный пользователем или определенный автоматически не соответствует ни одному домену, то пользователь будет переадресован на базовый домен.
Если пользователь заходит на конкретный домен, на котором он еще не был, то город будет взят из настроек поддоменв. Например при заходе на kaluga.domemn.loc
у пользователя будет выведен город Калуга
вне зависимости от реального города. Пользователь при этом может указать любой город.
Если пользователь уже был на этом домене и известно его реальное местоположение в куках или сессии, он будет переброшен на соответствующий домен.
Для этого делаем все настройки как для пункта Поддомены на одном сайте
и добавляем следующие настройки
Этот вариант подходит когда есть заданный набор городов и их поддоменов и переключаться нужно только между ними.
При этом важно учесть что для базового домена, в данном случае для москвы город задается в настройках модуля для конкретного сайта как город по умолчанию.
Для этого делаем все настройки как для пункта Поддомены на одном сайте
и добавляем следующие настройки
В настройка модуля включаем параметры - "Домен в приоритете" и "Использовать домен для определения города"
В настройках компонента вывода города отключаем вывод поиска города, список избраных городов будет выводится по прежнему (его добавляем в пункте поддомена на одном сайте),все это можно сделать в режиме редактирования сайта когда компонент уже размещен на странице
В итоге получится что у человека будет на выбор только три города из примера, между котрыми можно переключаться. При заходе на любой из доменов будет установлен пользователю город, котрый соответствует именно этому домену.
При клике по другому городу из списка, пользователя перебросить на соответствующий домен.
Этот вариант подходит когда вам нужно сделать все тоже самое что в пунктах выше но не на одном сайте а на нескольких.
В таком случае для каждого сайта делаем свои настройки, например домен piter.domen.loc
перенесем на отдельный сайт.
Переходим в Настройки /Настройки продукта / Сайты / Список сайтов
Настройки для доменов - Москва и Калуга
Для домен - Сантк-Петербург - добавляем новый сайт и указываем там домен для этого города
Далее добавляем избраные местоположения для примера, для вывода в публичной части и переключения между городами
BXmaker / Определение местоположения по IP 2.0 / Избранные местоположения
Этот список должен быть указан в компоненте bxmaker:geoip.city
размещеном на страницах сайта или в шаблоне сайта
Теперь настраиваем переадресацию между доменами, чтобы при выборе пользователем города Калуга он был автоматически переброшен на поддомен kaluga.domen.loc
. А при выборе города Москва, Самара или любой другой не из списка был переадресован на домен domen.loc
BXmaker / Определение местоположения по IP 2.0 / Домены
Аналогичную настройку копируем для второго сайта, для Санкт-Петербурга
Сохраняем, и все должно заработать.