Один robots.txt на несколько доменов

robots.txt для несколько сайтов

Недавно по работе столкнулся с довольно рутинной и нудной задачей – выполнение ТЗ для СЕО-оптимизации сайта. Кто сталкивался с подобными задачами, наверняка, сейчас сморщили гримасу неприязни и физическую боль во всем теле. Да, СЕОшники знают толк в извращениях. Но статья не про продвижение сайтов и не про веселых ребят оптимизаторов, а про один из пунктов ТЗ, который внес немного разнообразия в рабочий процесс и скрасил трудовой час. В одной из задач ТЗ, была поставлена цель, сделать различное содержание файла robots.txt для разных доменов. Домены в свою очередь припаркованы к одному серверу и используют одни и те же файлы. То есть нужно реализовать вывод разной информации при обращении к одному и тому же файлу. Задачка мне показалась интересная и вот, про нее статья.

Разделение robots.txt для каждого домена

Очевидно, что для разного отображения robots.txt , при просмотре с разных доменов, необходимо как-то программно проверять, по какому адресу открыт файл, и выдавать нужный текст. Но как это сделать, если файл текстовый? Можно написать php код прямо в файле и настроить на сервере, чтобы apahce выполнял код, написанный в файлах с расширением txt, я как-то писал подобную статью: как заставить работать php код на html-странице. Но, одно дело, когда код выполняется в html-файлах, и совсем другое, если на сервере будут выполняться текстовые файлы. Это не самая лучшая идея с точки зрения безопасности. Поэтому было решено воспользоваться другим способом – прописать, все для того же apahce, редирект на php-скрипт, при обращении к robots.txt.
Сам редирект можно прописать в файле .htaccess следующим образом:

RewriteEngine On
RewriteRule ^robots.txt robots.php [L]

Теперь при обращении к сайту по адресу http://site1.ru/robots.txt, на самом деле вызываться будет скрипт robots.php, хотя в адресной строке это ни как не отобразится. Главное, сам файл robots.txt переименовать или перенести, чтобы он не мешал редиректу.
И теперь все, что осталось, это написать простой php-код определения хоста для подстановки соответствующего содержимого robots.txt. А также нужно не забыть выдать заголовки, в которых будет указан тип данных, чтобы полностью имитировать текстовый файл.
Вот такой тестовый код получился:

 
// указываем в заголовках, что это текст
header('Content-type: text/plain');

// проверяем, какой открыт сайт
// и выводим нужный текст robots.txt
if($_SERVER['HTTP_HOST'] == "site1.ru"){
	echo "User-agent: * \nSitemap: site1.ru/sitemap-1.xml";
}else{
	echo "User-agent: * \nSitemap: site2.ru/sitemap-2.xml";
}

Послесловие

Если эту статью читают СЕО-оптимизаторы, то обращаюсь к вам, ребята. Как вы считаете, такой редирект между файлами, при обращении к robots.txt, будет адекватно воспринят поисковыми системами? Если нет, то возможно у вас есть другие идеи и предложения. Буду признателен, присланным мне на почту письмам или ответам в комментариях.

Рассказать друзьям:


Оценить:
(5 оценок, среднее: 4,80 из 5)

Один robots.txt на несколько доменов: 5 комментариев

  1. Поисковой системе неважно как утроен движок сайта, ей важно, какие данные он отдает при серфинге этого сайта. Если при обращению к адресу domen/robots.txt будет выдан валидный код соответствующий требованиям к файлам robots.txt то робот примет их к обработке.

  2. В данном случае никакого редиректа нет. Мы запросили данные с http://site1.ru/robots.txt и с http://site1.ru/robots.txt данные получены. Редиректом это могло бы считаться, если бы браузере происходила смена урл-а, а так это просто обычное правило для сервера и поисковая система и все остальные в т.ч., попросту даже не ведают о том, что данные генерятся php-скриптом.

  3. Спасибо большое, что сказал что robots.txt нужно переименовать или удалить , помог

Добавить комментарий для Макс Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code