Для того чтобы в мульти-инсталляциях поисковики находили robots.txt делается следующее:
в корневой папке мульти-инстяллации, допустим это (как видно в ftp)
/multi/
Для начала в корневой папке создается файл robots.php со следующим содержанием:
<?php
header('Content-type: text/plain');
$robotstxt = "sites/" . $_SERVER['HTTP_HOST'] . "/robots.txt";
echo file_get_contents($robotstxt);
?>
(Этот скрипт берёт имя запрашивоемой домены, "лепит"(строка номер 2) из неё
"sites/" + "imja domeny" + "/robots.txt"
путь к фаилу который надо считать ( robots.txt ), считывает его, и выдаёт всё "на экран" (строка 3), выдавая в свою очередь до этого http-заголовок о том, что информация, которая последует будет в текстовом формате (строка номер 1).)
Затем в папке интересующего нас сайта, допустим http://dsl.by/, создается/копируется файл "robots.txt" с его содержанием:
/multi/sites/dsl.by/robots.txt:
# robots.txt dsl.by
#
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Disallow: /updates/
Disallow: /profiles/
#
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /logout/
Disallow: /node/add/
Disallow: /search/
Обязательно вписывай имя домены в комментарий robots.txt, как для контроля, так и для того, чтобы не запутаться.
И последним шагом в корневой папке мулти-инсталляции редактируется файл
.htaccess
В него вписывается следующая директива (директивами мы называем приказы вебсерверу):
RewriteRule ^robots.txt$ http://%{HTTP_HOST}/robots.php [R=302,L]
Эта директива означает следующее:
"Переведи запрос на файл robots.txt на URL по типу http://%{имя запрашиваемой домены}/robots.php выдавая при этом код статуса 302 протокола хттп"
Код статуса 302 oznachet "Found", т.е. "нашёл".
Это можно представить себе в виде следующего диалога:
Поисковик: вебсервер, дай файл robots.txt с домены dsl.by
Вебсервер: есть такой файл, но у меня есть директива дать тебе файл robots.php с домены dsl.by
Поисковик: ок
Вебсервер: (дает файл, выдает http-code 200)
.htaccess: 12331276312612google.html & Co
Для того чтобы в мульти-инсталляциях поисковики находили файлы верификации домены google/яндека/yahoo и.т.д типа
213112312312313123google.html
yandex_231327831123123123.txt
y_key_239389123891238901.html
делается сдедуюшее:
в корневой папке мульти-инстяллации, допустим это (как видно в ftp)
/multi/
создается файл
search-engine-controlfile.php
в который вписывается следующее:
<?
header('Content-type: text/plain');
$controlfile = "sites/" . $_SERVER['HTTP_HOST'] . "/" . basename($_REQUEST[file]);
echo file_get_contents($controlfile);
?>
("basename($_REQUEST[file])" означает "базисное имя файла". Например полное имя http://www.vovka.de/path/123.txt". А базисное имя будет тогда "123.txt". Остальная функциональная часть такая-же как и у "robots.php" (см. выше))
Вторым шагом в папке соответствующей домены, допустим dsl.by создаётся файл
google21123123123123.html
(ну или соответсвующий фаил Яндекса или Yahoo)
Полный путь это к этому файлу ( как видно в ftp):
/multi/sites/dsl.by/google21123123123123.html
Затем редактируется файл
.htaccess
В него вписываются следующие директивы:
# Control-files of search-engines
RewriteRule ^google.*html$ http://%{HTTP_HOST}/search-engine-controlfile.php?file=%{REQUEST_URI} [R=302,L]
RewriteRule ^yandex_.*\.txt$ http://%{HTTP_HOST}/search-engine-controlfile.php?file=%{REQUEST_URI} [R=302,L]
RewriteRule ^y_key_.*\.html$ http://%{HTTP_HOST}/search-engine-controlfile.php?file=%{REQUEST_URI} [R=302,L]
Эти директивы означают следующее (на примере первой):
Переведи любой запрос по типу "google.*html" на файл search-engine-controlfile.php по адресу запрашиваемой домены. При этом передай файлу ( в данном случае это PHP-скрипт, передай "ключ"/"аргумент" "file", где содержимым ключа является имя запрашиваемой домены (%{REQUEST_URI}). При этом выдавай код номер 302 протокола http.
(Точка в "google.*" означает "любой символ" а звёздочка после точки значит что символ слева от неё (звёздочки) может быть повторён любое количество раз).
пример : http://dsl.by/robots.php
© Владимир для drupal.by И drupal.ru
Яндекс не видит robots.txt по редиректу... К сожалению
Можно воспользоваться модулем robotstxt