@soofftt91

Как убрать конфликт в .htaccess?

Здравствуйте.
Есть сайт на котором было сделано чтобы при открытии любого субдомена (sub.site.ru) показывалось содержимое с основного домена (site.ru) , а сам субдомен (sub) передавался как get параметр. С этой частью проблем не возникло, было реализовано так:
# DirectoryIndex index.php
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+)\.site\.ru$ [NC]
RewriteRule ^(.*)$ index.php?sub_dom=%2 [L]


Дальше мне понадобилось закрыть все субдомены от индексации. Для этого создал два разных файла robot1.txt и robot2.txt. И делал на них подмену с стандартного "robots.txt" в зависимости от наличия субдомена. Если субдомен есть, по открывался robot2.txt в котором стоял запрет на индексацию. Сделал с помощью данного кода:
RewriteBase /
RewriteCond  %{HTTP_HOST} ([a-z0-9-]+).site.ru$
Rewriterule ^robots.txt$ /robots2.txt [L]

RewriteCond  %{HTTP_HOST} site.ru$
Rewriterule ^robots.txt$ /robots1.txt [L]


По отдельности всё работает как нужно, но если использовать эти правила вместе, то второе не срабатывает. И вместо "robots.txt" открывается индексная страница.

Полагаю что нужно внести исключение в первое правило, но уже пару часов не могу разобрать как это сделать.

P.S. Кроме этих двух частей кода, в .htaccess больше ничего нету.
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@soofftt91 Автор вопроса
Разобрался сразу после публикации вопроса))
# DirectoryIndex index.php
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+)\.faberlicproject\.com$ [NC]
RewriteRule ^(.*)[^robots.txt]$ index.php?sub_dom=%2 [L]

# RewriteBase /
RewriteCond  %{HTTP_HOST} ([a-z0-9-]+).faberlicproject.com$
Rewriterule ^robots.txt$ /robots2.txt [L]

RewriteCond  %{HTTP_HOST} faberlicproject.com$
Rewriterule ^robots.txt$ /robots1.txt [L]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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