Craftum — конструктор сайтов
Создайте сайт с помощью профессиональных шаблонов или придумайте дизайн с нуля

Почему 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)

Лавр Иванов +125
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']?>

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

Тагир Кашапов
45

Как изменить описание сайта

Проблема заключается в том что описание сайта в поисковике сниппет и тайтл они про хост timeweb пробовал ставить свои мета теги description и title не помогло как изменить  описание?
Александр
88

Реклама и продвижение. В яндекс выдача: сайт.ru. Работа в вашем городе.

Здравствуйте. Впервые купил и установил шаблон, подключил рекламу и продвижение, оплатил бешенные тыщи, согласился со всеми автоматическими предложениями слов, регион один конкретный город. В яндексе сайт появился вверху выдачи, но почему-то...
Max
52

Клонирование VDS

Про клонирование VDS сказано довольно скудно в справке, хотелось бы уточнить: у меня есть сервер (боевой) с Битрикс и на нем все настроено и работает как надо. Настроек полно было произведено и на самом сервере в BitrixENV,  и в Битриксе.  Сейчас...
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте