Проблема такая: есть несколько поддоменов(msk.*, spb.*, ekb.* и т.п.), которые фактически ссылаются на одну папку(корень). Нужно чтобы для каждого поддомена по запросу robots.txt выводилось свое содержимое, файлы с соответствующим содержимым лежат в корне, например robots_ekb.txt. Перепробовал уже сотни вариаций написания rewriterule, ничего не помогает, последний вариант такой:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ekb.site.ru [NC]
RewriteRule ^robots\.txt robots_ekb.txt [L]
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>
Где-то прочитал что в httpd.conf отключена может быть обработка txt файла, как ее включить если у меня обычный битрикс-хостинг на timeweb, неужели больше никаких вариантов? Люди добрые, помогите!)
Ответы (5)
Файл robots.txt относится к статичному контенту.
В данном случае нужно либо пытаться придумать хитрые правила перенаправления чтобы реализовать желаемое либо пытаться искать решения со стороны 1C-Битрикс.
Сегодня вечерком попробую прикинь что можно предложить для достижения нужного результата, но вряд ли смогу порадовать готовым решением. Если это критично для работы вашего сайта, можно VDSку попробовать настроить под свои нужны со своими настройками.
Т.е. основной robots.txt переименовывается, например, в robots_main.txt, и для него прописывается основной правило:
RewriteCond %{HTTP_HOST} ^site .ru$ [NC]
RewriteRule ^robots.txt$ robots_main.txt [L]
И так же для каждого региона отдельный robots_<регион>.txt, и отдельное правило:
RewriteCond %{HTTP_HOST} ^<регион>.site .ru$ [NC]
RewriteRule ^robots.txt$ robots_<регион>.txt [L]
(site .ru без пробела)
сделали в htaccess:
RewriteRule ^robots.txt$ robots_for_domain.php [L]
а в файле:
<?header("Content-Type:text/plain");?>
текст robots.txt
и Host: http://<?=$_SERVER['HTTP_HOST']?>