Путь запроса к региональной странице
Этапы настройки
| Этап | Что сделать | На что обратить внимание |
|---|---|---|
| DNS | Создать запись для поддомена или общую запись для всех поддоменов | Общая запись удобна, но требует контроля лишних имён |
| Сертификат | Получить сертификат на все поддомены | Универсальный сертификат упрощает добавление новых городов |
| Сервер | Определять регион по имени хоста | Неизвестные имена должны получать ошибку 404, а не главную страницу |
| robots.txt | Отдавать отдельный файл для каждого поддомена | Ссылка на sitemap каждого поддомена |
| sitemap.xml | Формировать карту для каждого поддомена | Только адреса этого поддомена |
| Canonical | Указывать адрес этой же страницы на этом же поддомене | Не на основной домен |
| Аналитика | Разделить данные по регионам | Единый идентификатор и разные представления |
Пример определения региона на сервере
server {
listen 443 ssl;
server_name ~^(?<region>[a-z0-9-]+)\.example\.ru$;
location / {
proxy_set_header X-Region $region;
proxy_pass http://app;
}
}
Регион извлекается из имени хоста и передаётся приложению. Приложение проверяет, существует ли такой регион, и при отсутствии возвращает ошибку 404.
Частые ошибки
- Любое несуществующее имя поддомена открывает главную страницу — появляются бесконечные дубли.
- Один robots.txt и одна карта сайта на все поддомены.
- Canonical всех поддоменов ведёт на основной домен.
- Сертификат не охватывает новые поддомены, и браузер показывает предупреждение.
Как устроить региональную привязку, читайте в статье про панель вебмастера, а общий выбор между поддоменами и папками — в статье про поддомены и папки. Перед изменениями конфигурации пригодится безопасное тестирование правил сервера.
Проверка после настройки
| Проверка | Ожидаемый результат |
|---|---|
| Открыть существующий поддомен | Страница региона, код 200 |
| Открыть несуществующее имя поддомена | Ошибка 404, а не главная страница |
| Открыть robots.txt поддомена | Отдельный файл с адресом карты сайта этого поддомена |
| Открыть карту сайта поддомена | Только адреса этого поддомена |
| Проверить сертификат | Действителен для этого имени |
Как добавлять новые регионы
- Добавьте регион в справочник регионов приложения: без записи сервер отдаёт 404.
- Подготовьте локальные данные и содержимое региона.
- Проверьте, что сертификат и настройки DNS охватывают новое имя.
- Добавьте поддомен в панели вебмастера и настройте регион.
Частые вопросы
Что должен возвращать сервер для несуществующего поддомена?
Ошибку 404, а не главную страницу: иначе появятся бесконечные дубли из произвольных имён.
Нужен ли отдельный robots.txt для каждого поддомена?
Да: каждый поддомен воспринимается как отдельный хост со своими правилами и своей картой сайта.
Куда должен вести canonical на региональном поддомене?
На адрес этой же страницы на этом же поддомене, а не на основной домен.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.