Настройка robots.txt для разных хостов

08 декабря, 14:44
Алексей
Алексей
08 декабря, 14:44
134
0
Содержание
Постановка задачи
Описание проблемы
Вводные данные
Проксирование статики на apache
Проксирование статики на nginx
Размер текста:

Постановка задачи

Для поддоменов нужен отдельный robots.txt с запретом на индексацию

Описание проблемы

Для упрощения поддержки таких доменов, они делаются синонимами основного домена, а значит имеют общий контент, общую корневую директорию, а значит и общие файлы, в том числе и robots.txt.

Например, для сайтов site.ru и sub.site.ru корневая директория /home/www/site.ru (где и лежит их общий robots.txt).

Вводные данные

Домен основного сайта: site.ru

Подоомены: kazan.site.ru, spb.site.ru, krasnodar.site.ru

Далее рассмотрим два случая:

  • Проксирование статики на сервере происходит на стороне apache
  • Проксирование статики на сервере происходит на стороне nginx

Наша задача сделать так, чтобы для основного домена и поддоменов отдавался разный файл robots.txt

Для начала мы создадим два файла robots.txt для основного домена и robots-subdomains.txt для поддоменов.

robots.txt
User-agent: *
Allow: /


robots-subdomains.txt
User-agent: *
Disallow: /

Проксирование статики на apache

В случае, проксирование статики происходит на стороне apache все просто - добавляем в .htaccess строки:

RewriteCond %{HTTP_HOST} ^subdomain.site.ru$
RewriteRule ^robots.txt$ /robots-subdomains.txt [L]

и создаем файл, например, robots-subdomains.txt - robots для поддоменов.

Проксирование статики на nginx

В случае проксирования статики на nginx задача слегка усложняется. Файл robots.txt будет отдаваться nginx’ом и поэтому до правил в .htaccess дело не дойдёт. Для того, чтобы иметь возможность перенаправить запросы к файлу robots.txt, нам надо, чтобы его отдавал apache. Для этого мы переименуем файл robots.txt в main-robots.txt. В этом случае, не найдя файл robots.txt в корне сайта, nginx передаст запрос на apache, который обработает перенаправления в .htaccess.

В итоге у нас должно получиться два файла: main-robots.txt для основного домена и robots-subdomains.txt для поддоменов. В .htaccess надо вписать следующие строки:

RewriteCond %{HTTP_HOST} ^site.ru$
RewriteRule ^robots.txt$ /robots-main.txt [L]
RewriteCond %{HTTP_HOST} ^subdomain.site.ru$
RewriteRule ^robots.txt$ /robots-subdomains.txt [L]
Алексей
Автор
Алексей
Подписывайтесь
на рассылку
Я согласен на обработку
персональных данных

Подписаться


Понравилась статья?
Оставить комментарий

Введено символов: 0 / 1200

Комментариев пока что нет

Наши достижения

Входим в число лучших компаний России в сферах интернет-рекламы и разработки сайтов по результатам самых авторитетных рейтингов

Победитель в номинации «SEO для e-commerce» по итогам WORKSPACE DIGITAL AWARDS 2025
Победитель в номинации «SEO под ключ» по итогам WORKSPACE DIGITAL AWARDS 2024
Рейтинг с самой прозрачной методологией SEO глазами клиентов 2023
SEO глазами клиентов 2023
Рейтинг известности SEO-компаний 2020 по версии SEO-news
SEO-news
Другие статьи автора
Вернуться в раздел
  • Оптимизация сайтов под Retina-экраны
  • Как выровнять элемент по вертикали внутри блочного элемента
Другие статьи рубрики
Вернуться в раздел
Оставьте заявку

Нужна помощь с сайтом? Заполните форму, и наши менеджеры проконсультируют вас уже сегодня!

* — Поля, обязательные к заполнению.
Получайте полезные письма
Присылаем экспертные исследования и кейсы по SEO и интернет-маркетингу,
а также спецпредложения только для подписчиков!


Оставьте ваш e-mail:*
Я согласен на обработку
персональных данных

Принципиально новые условия сотрудничества в SEO — зарабатываем только вместе!

Уникальный тариф «Оборот», где доход агентства больше не зависит от визитов и позиций вашего сайта, а привязан исключительно к росту оборота вашей компании.

Тариф, который хотели сделать многие, но реализовали только мы.

К тарифу «Оборот»