В новом модуле поискового продвижения есть возможность редактировать robots.txt.
Увы нельзя задать имя полученному файлу.
Это нормально, когда сайты в Битрикс имеют отдельные папки (через DOCUMENT_ROOT или SITE_DIR). Но бывает ситуации, когда папки для ряда сайтов общие - получаем общий набор файлов для сайтов.
В итоге сайтов несколько, а robots.txt у них один и нельзя сделать их разными (это удобно для указания на sitemap - его имя, к счастью, можно в настройках указать).
Добавлено по комментариям: Отдавать разные версии robots.txt в этой ситуации можно средствами nginx. Главное в этой идее не второй шаг (я привел в пример неэффективный способ отдачи средствами PHP), а первый - сама возможность сохранить различные версии robots.txt для сайтов в такой конфигурации.
Добавлено после осмотра исходников модуля seo 14.5.0 (18.04.2014): Улучшений нет никаких. Имя robots.txt вбито в константе \Bitrix\Seo\RobotsFile::ROBOTS_FILE_NAME и ничего с этим не поделать ни с помощью событий (их нет), ни с помощью глубокой кастомизации (я имею в виду создание своего класса унаследовав от стандартного). Функционал редактирования robots.txt на сайтах с одной общей папкой сейчас неупотребим.
Если это поможет решению вопроса, пусть называется как угодно.
Вот что нужно:
Имеем два сайта - s1 и s2. Имеем два robots.txt, которые создаем из админки - robots_s1.txt и robots_s2.txt Их имена и нужно указать в админке, чтобы она не перетирала общий robots.txt.
Да, если эта настройка будет, то админка еще и ругаться не будет, если не увидит в корне сайта robots.txt. Но эта проблема существует минут 15 до того момента, пока не написан PHP скрипт для подключение реального текста:
Вот этот PHP скрипт и будет выдавать реальный текст robots.txt для текущего сайта. И создан реальный текст будет средствами админки, а не ручками. Ручками создается только этот скрипт (да, robots.txt нужно сделать PHP скриптом).
Добавлено: Да, можно попробовать не делать robots.txt скриптом, а настроить обработку адресов Битрикс на обычный PHP скрипт. Об этом я забыл. У этого варианта есть свое достоинство - не нужно соваться в настройки Apache или nginx.
Это совершенно не отменяет моего предложения - нужно, чтобы в админке можно было указывать разные названия файлов. Дальше вступает в игру location.
Да, опасности использования PHP в любом виде, для отдачи robots.txt я не усмотрел. Так поправил бы на первом же сайте. Дело не в этом, а в том, что сейчас средствами админки это не сделать ни правильно (nginx), ни ужасно (PHP).
С первого раза не понял, сформулирована ужасно. Переведу:
Обычно делают robots.txt. Но можно создать свой файл robots.php, который бы открывался через обработку адресов по адресу http://мой сайт/robots.txt
В модуле SEO нужна опция: "путь к настоящему robots.txt". Иначе клиент лезет в SEO, видит, что файла не существует, ругается и создает свой.
Вот что нужно:
Имеем два сайта - s1 и s2. Имеем два robots.txt, которые создаем из админки - robots_s1.txt и robots_s2.txt
Их имена и нужно указать в админке, чтобы она не перетирала общий robots.txt.
Да, если эта настройка будет, то админка еще и ругаться не будет, если не увидит в корне сайта robots.txt. Но эта проблема существует минут 15 до того момента, пока не написан PHP скрипт для подключение реального текста:
Вот этот PHP скрипт и будет выдавать реальный текст robots.txt для текущего сайта. И создан реальный текст будет средствами админки, а не ручками. Ручками создается только этот скрипт (да, robots.txt нужно сделать PHP скриптом).
Добавлено: Да, можно попробовать не делать robots.txt скриптом, а настроить обработку адресов Битрикс на обычный PHP скрипт. Об этом я забыл. У этого варианта есть свое достоинство - не нужно соваться в настройки Apache или nginx.
задумайтесь
Это совершенно не отменяет моего предложения - нужно, чтобы в админке можно было указывать разные названия файлов. Дальше вступает в игру location.
Да, опасности использования PHP в любом виде, для отдачи robots.txt я не усмотрел. Так поправил бы на первом же сайте. Дело не в этом, а в том, что сейчас средствами админки это не сделать ни правильно (nginx), ни ужасно (PHP).