Почему rewriterule для robots.txt не работает?

5 ответов

Проблема такая: есть несколько поддоменов(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)

Лавр Иванов +115
25.07.2016 17:25
Статичный контент на Timeweb отдается веб-сервером nginx.
Файл robots.txt относится к статичному контенту.

В данном случае нужно либо пытаться придумать хитрые правила перенаправления чтобы реализовать желаемое либо пытаться искать решения со стороны 1C-Битрикс.

Сегодня вечерком попробую прикинь что можно предложить для достижения нужного результата, но вряд ли смогу порадовать готовым решением. Если это критично для работы вашего сайта, можно VDSку попробовать настроить под свои нужны со своими настройками.
Свернуть ответы
Спасибо за ответ! служба поддержки таймвеб посоветовала довольно элегантное решение: удалить вообще оригинальный robots.txt - в этом случае запросы начинают обрабатываться апачем, ну а дальше дело техники)
Иван Абрамов +2
26.07.2016 11:16
Вариант хороший. А он поможет вам добиться желаемого результата?
Да, поможет, просто для этого варианта нужно не только на каждый поддомен прописать отдельное правило в .htaccess, но и для основного домена тоже.

Т.е. основной 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 без пробела)
Однако вариант от Александра Попова не работает, nginx не выполняет эту работу.

сделали в htaccess:
RewriteRule ^robots.txt$ robots_for_domain.php [L]

а в файле:
<?header("Content-Type:text/plain");?>
текст robots.txt
и Host: http://<?=$_SERVER['HTTP_HOST']?>

Похожие вопросы

Елена
250

Натяжка вёрстки на Битрикс

Здравствуйте, сейчас, на стадии разработки находится сайт, готово ТЗ и макет, скоро будет вёрстка. Нужен толковый  специалист, который сможет "одеть" эту вёрстку на Битрикс и довести до ума функционал. Отзовитесь, пожалуйста, обсудим...
Екатерина Гордон
569

Ответ сервера у несуществующих субдоменов

Подскажите, пожалуйста, как избавиться от несуществующих субдоменов сайта? В Яндексе висит куча несуществующих субдоменов, которые могут мешать продвижению. Один из программистов пытался вывести 404 страницу. Визуально это действительно выглядит как...
Александр
387

500 ошибка или 404 при редактировании страницы или компонента сайта на 1с bitrix

Здравствуйте, на данном сайте https://sto-master54.ru/site_ax/ при редактировании компонента или страницы выскакивает ошибка 500 или 404, вот пример: https://sto-master54.ru/site_ax/contact/ Может ли быть причина в пользовательском...
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.