🔴 Главные проблемы:
1. Отсутствуют критически важные правила
В вашем файле **НЕТ** двух обязательных правил из рекомендаций:
# ASPRO_SITEMAP_sitemap_files - ОТСУТСТВУЕТ!
RewriteCond %{REQUEST_FILENAME} sitemap_files.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap_files.php -f
RewriteRule ^(.*)$ /sitemap_files.php [L]
# ASPRO_SITEMAP_sitemap - ОТСУТСТВУЕТ!
RewriteCond %{REQUEST_FILENAME} sitemap.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap.php -f
RewriteRule ^(.*)$ /sitemap.php [L]
У вас есть только `sitemap-files.xml` (с дефисом), но нет основных `sitemap_files.xml` и `sitemap.xml`.
2. Неправильное расположение правил Битрикса
Правила для `urlrewrite.php` должны идти **ПОСЛЕ** всех правил ASPRO, но у вас они идут сразу после `robots.txt`.
✅ Исправленный .htaccess:
Options -Indexes
ErrorDocument 404 /404.php
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Let's Encrypt verification
RewriteRule ^\.well-known/acme-challenge/ - [L]
# ASPRO_SITEMAP_sitemap_files Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap_files.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap_files.php -f
RewriteRule ^(.*)$ /sitemap_files.php [L]
# ASPRO_SITEMAP_sitemap Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap.php -f
RewriteRule ^(.*)$ /sitemap.php [L]
# ASPRO_SITEMAP_sitemap-iblock-9 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-9.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-9.php -f
RewriteRule ^(.*)$ /sitemap-iblock-9.php [L]
# ASPRO_SITEMAP_sitemap-iblock-7 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-7.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-7.php -f
RewriteRule ^(.*)$ /sitemap-iblock-7.php [L]
# ASPRO_SITEMAP_sitemap-iblock-6 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-6.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-6.php -f
RewriteRule ^(.*)$ /sitemap-iblock-6.php [L]
# ASPRO_SITEMAP_sitemap-iblock-5 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-5.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-5.php -f
RewriteRule ^(.*)$ /sitemap-iblock-5.php [L]
# ASPRO_SITEMAP_sitemap-iblock-39 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-39.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-39.php -f
RewriteRule ^(.*)$ /sitemap-iblock-39.php [L]
# ASPRO_SITEMAP_sitemap-iblock-15 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-15.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-15.php -f
RewriteRule ^(.*)$ /sitemap-iblock-15.php [L]
# ASPRO_SITEMAP_sitemap-iblock-14 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-14.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-14.php -f
RewriteRule ^(.*)$ /sitemap-iblock-14.php [L]
# ASPRO_SITEMAP_sitemap-iblock-13 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-13.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-13.php -f
RewriteRule ^(.*)$ /sitemap-iblock-13.php [L]
# ASPRO_SITEMAP_sitemap-iblock-12 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-12.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-12.php -f
RewriteRule ^(.*)$ /sitemap-iblock-12.php [L]
# ASPRO_SITEMAP_sitemap-iblock-11 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-11.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-11.php -f
RewriteRule ^(.*)$ /sitemap-iblock-11.php [L]
# ASPRO_SITEMAP_sitemap-iblock-10 Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-iblock-10.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-iblock-10.php -f
RewriteRule ^(.*)$ /sitemap-iblock-10.php [L]
# ASPRO_SITEMAP_sitemap-files Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap-files.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap-files.php -f
RewriteRule ^(.*)$ /sitemap-files.php [L]
# ASPRO_ROBOTS Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} robots.txt
RewriteCond %{DOCUMENT_ROOT}/robots.php -f
RewriteRule ^(.*)$ /robots.php [L]
# Bitrix URL rewrite (должно быть в конце!)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 3 day"
ExpiresByType image/gif "access plus 3 day"
</IfModule>
📋 Что нужно сделать:
- **Добавьте** два недостающих правила для `sitemap_files.xml` и `sitemap.xml`
- **Проверьте**, что соответствующие PHP-файлы существуют:
<li>`/sitemap_files.php`
- `/sitemap.php`
- **Очистите кеш** Битрикса после внесения изменений
- **Проверьте права** на файлы `.htaccess` (должны быть 644 или 664)
После этих изменений региональные sitemap должны начать корректно работать с поддоменами.
Чтобы заработали региональные sitemap и robots АСПРО
Надо их сгенерировать в разделе Аспро-> Генерация файлов -> sitemap.xml
после этого они появятся в папке /aspro_regions
если с robots всё понятно и региональный файл подцепляется сразу, то с sitemap не так всё быстро.
в htaccess добавляются правила подмены robots.txt на robots.php
для каждого инфоблока и статичных файлов sitemap***.xml на sitemap***.php
в некоторых версиях было пропущено правило для sitemap.xml
ASPRO_SITEMAP_sitemap-files Serve sitemap.xml with sitemap.php only if the latter exists
RewriteCond %{REQUEST_FILENAME} sitemap.xml
RewriteCond %{DOCUMENT_ROOT}/sitemap.php -f
RewriteRule ^(.*)$ /sitemap.php [L]
добавили правило - sitemap теперь показывает правильный.
[https://aspro.ru/docs/course/course58/lesson3862/](https://aspro.ru/docs/course/course58/lesson3862/)