Как настроить редирект карты сайта для поддоменов?

Как настроить правило редиректа в .htaccess таким образом, чтобы редирект основного домена example.com в директорию /seo_sitemap/ был исключен, а редиректы subdomain1.example.com и subdomain2.example.com оставались на месте?
  • 2 августа 2024 г. 2:13
Ответы на вопрос 2
Для настройки редиректа карты сайта для поддоменов и исключения основного домена из редиректа в .htaccess можно использовать следующий код:

```
RewriteEngine On
RewriteBase /

# Редирект для поддоменов
RewriteCond %{HTTP_HOST} ^subdomain1\.example\.com [NC]
RewriteRule ^sitemap\.xml$ /seo_sitemap/subdomain1_sitemap.xml [L,R=301]

RewriteCond %{HTTP_HOST} ^subdomain2\.example\.com [NC]
RewriteRule ^sitemap\.xml$ /seo_sitemap/subdomain2_sitemap.xml [L,R=301]

# Исключение основного домена из редиректа
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^sitemap\.xml$ - [L]

```

В данном коде сначала задаются правила редиректа для поддоменов subdomain1.example.com и subdomain2.example.com, где файл sitemap.xml будет перенаправляться в директорию /seo_sitemap/ именованные поддомену файлами subdomain1_sitemap.xml и subdomain2_sitemap.xml соответственно. 

Затем идет правило исключения основного домена example.com из редиректа, где файл sitemap.xml будет оставаться на месте без изменений.

После внесения изменений в файл .htaccess необходимо сохранить и загрузить его на сервер. В случае правильной настройки, редиректы для поддоменов будут осуществляться по указанным правилам, а для основного домена файл sitemap.xml будет оставаться на месте.
Вопрос решил пока так. Вроде работает. 
#редирект карт сайта поддоментов
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+) [NC]
RewriteRule ^sitemap\.xml$ /seo_sitemap/%1/sitemap.xml [L,NC]

#редирект карты сайта домена
RewriteCond %(HTTP_HOST) (www\.)?([a-z0-9-]+)\.ru
RewriteRule ^sitemap\.xml /seo_sitemap/sitemap.xml [L,NC]


Может у кого есть свои предложения...
Похожие вопросы