Это более простой способ. В нем отсутствует необходимость разработки (однако, правки в настройки веб сервера вносить в любом случае придется, эту проблему без жестких костылей невозможно решить на уровне решения), но под каждый сайт нужно создавать отдельную карту.
Все же, если карты одинаковые, мы рекомендуем использовать
другой способ, даже если он займет у Вас немного больше времени. Если у Вас не получается, лучше обратитесь в
поддержку.
Внимание!В данной статье рассматривается работа с кодом. Перед тем как что-то делать, сделайте полный бекап сайта, по ходу работы не забывайте делать бекап файлов которые правите.
Под каждый сайт, создаем отдельную карту сайта
Путь им задаем вида /sitemap/<SUBDOMAIN>/sitemap, пример:
Если домен без WWW, то у основного домена папка должна быть default (/sitemap/default/sitemap).
Генерируем карты, убеждаемся в том, что создалась папка sitemaps/, в ней для каждого поддомена есть папка и в них лежат карты сайта.
После чего удаляем все карты в корне по маске sitemap*.xml.
Если у Вас Apache, вносите в .htaccess после
RewriteEngine On
следующееRewriteCond %{SERVER_NAME} ^domain\.ru$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^sitemap(.*).xml$ /sitemaps/default/sitemap$1.xml [L]
RewriteCond %{SERVER_NAME} ^(.*)\.domain\.ru$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^sitemap(.*).xml$ /sitemaps/%1/sitemap$1.xml [L]
<FilesMatch "sitemaps">
Order allow,deny
Deny from all
</FilesMatch>
Если у Вас nginx, вносите в server {} (Пожалуйста, убедитесь, что у Вас хватает компетенции. Если нет, пишите нам, не нужно ломать сервер.)location / {
if ($server_name ~ "^domain\.ru$"){
rewrite ^/sitemap(.*).xml$ /sitemaps/default/sitemap$1.xml break;
}
if ($server_name ~ "^(.*)\.domain\.ru$"){
rewrite ^/sitemap(.*).xml$ /sitemaps/%1/sitemap$1.xml break;
}
}
location ~ sitemaps {
deny all;
}
На этом все. Если разобраться не получается, не отчаивайтесь, пишите в
поддержку, мы поможем.