# sitemap.xml и robots.txt для поддоменов

При мультирегиональности на поддоменах каждому поддомену нужны свои `robots.txt` и `sitemap.xml`. Без этой настройки поддомен отдаёт файлы основного домена: карта сайта на `spb.example.ru` будет содержать адреса `example.ru`, и поисковик не увидит региональные страницы как отдельные.

Проверить, есть ли проблема, можно за минуту: откройте `sitemap.xml` на поддомене и посмотрите, какие адреса внутри. Если основного домена — настройка ниже нужна.

Для добавления этой возможности необходимо отредактировать конфигурационный файл nginx. На виртуальной машине они находятся в папке `/etc/nginx/bx/site_avaliable`. Если у вас только один сайт, то скорее всего конфиги называются `s1.conf` и `ssl.s1.conf`. Если на сервере несколько проектов, то скорее всего конфиги будут в названии иметь домен, например, `bx_ext_sitename.ru.conf` и `bx_ext_ssl_sitename.ru.conf`. Правьте оба файла — и HTTP, и HTTPS.


:::info
**Ошибка в конфигурации nginx кладёт сайт целиком.** Перед правками сделайте копию файла, а после изменений проверьте конфигурацию командой `nginx -t` — она покажет ошибку до перезапуска.

:::

Необходимые правки:

1\. `server_name` приведите к виду

```nginx
server_name ~^sitename\.ru$ ~^(?<name>[\w-]+)\.sitename\.ru$;
```

где `sitename\.ru` — адрес вашего сайта. Обратный слеш перед точкой необходим.

2\. **Выше** блока клиентской части (того, что начинается с `set $PORTNUXT`, см. [Установка клиентской части решения](/s/marketpro/doc/ustanovka-klientskoj-chasti-resheniya-jXxzjn9JLA)) добавьте два блока:

```nginx
location ~* ^\/[a-z0-9_-]+\.[a-z0-9]+$ {
 root "/home/bitrix/ext_www/sitename.ru/frontend/static/$name";
 try_files $uri @proxy;
}
location @proxy {
 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
 add_header X-Frame-Options "SAMEORIGIN";
 add_header X-Cache-Status $upstream_cache_status;
 proxy_redirect off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_ignore_headers Set-Cookie Cache-Control;
 proxy_http_version 1.1;
 proxy_read_timeout 1m;
 proxy_connect_timeout 1m;
 proxy_pass http://127.0.0.1:$PORTNUXT;
}
```

где `/home/bitrix/ext_www/sitename.ru/` — путь до корня сайта. После него обязательно `frontend/static/$name`: именно в эту папку решение складывает `sitemap.xml` и `robots.txt` для каждого поддомена.

Первый блок отдаёт файлы из папки поддомена, а если файла там нет — передаёт запрос клиентской части через второй блок. Блок `@proxy` нужен только вместе с первым: в основной конфигурации клиентской части он не используется.

Проверьте конфигурацию и перезапустите nginx:

```bash
nginx -t
systemctl restart nginx
```

# Как проверить, что получилось

После перезагрузки nginx откройте на поддомене два адреса:

* `https://spb.example.ru/robots.txt`
* `https://spb.example.ru/sitemap.xml`

В карте сайта адреса внутри `<loc>` должны быть с поддоменом, а не с основным доменом.

Если адреса не изменились, проверьте по порядку: перезагружен ли nginx после правки конфига; стоят ли оба блока выше блока клиентской части; есть ли в папке `frontend/static` подпапка с именем этого поддомена — именно туда решение складывает файлы; лежат ли в ней `sitemap.xml` и `robots.txt`. Нет подпапки — значит карта для этого поддомена ещё не собиралась.

Карту сайта пересобирает фоновая задача, а не правка nginx: если файла для поддомена ещё нет, дождитесь её выполнения или проверьте расписание по статье [«cron»](/s/marketpro/doc/cron-uknObkicoh). Как устроена сборка карты — в статье [«Карта сайта»](/s/marketpro/doc/karta-sajta-xAwKxiWqAE).

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)