Почему 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']?>

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

Александр
212

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

Здравствуйте, на данном сайте https://sto-master54.ru/site_ax/ при редактировании компонента или страницы выскакивает ошибка 500 или 404, вот пример: https://sto-master54.ru/site_ax/contact/ Может ли быть причина в пользовательском...

Проблема с SSL

Купила ssl сертификат, но сайт размещенный на таймвэбе, работающий на bitrix, не размещает фотографии так как они автоматически загружаются из crm,  у которого нет ssl сертификата, в тех поддержке таймвэб, подсказали сделать следующее: "...

Для лучшей индексации откуда загружать видео?

Имеет ли значение откуда видео на сайте? Просто встал вопрос загрузить на канал и вставить ссылку? Либо загружать на сайт? Но при загрузке на канал доп. трафик на ютуб будет идти. Подскажите, что лучше?)
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.