Динамический robots.txt при мультисайтинге без SSI
Статья здесь: http://www.xpoz.ru/webdev/11-06-2010
Источники:
"Мультисайтинг и .htaccess: robots.txt" http://www.drupal.ru/node/14710
"Мультисайтинг и robots.txt - простое решение" http://www.drupal.ru/node/20749
На моем хостинге (it-patrol.ru) SSI не установлен (написал письмо в техподдержку - жду), так что будем работать с .htaccess
UPD: для включения надо в .htaccess добавить следующие строки:
Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml
Я не использовал ничего нового, просто выкладываю, как это работает у меня.
В источниках предлагают включить перенаправление строкой "RewriteRule ^robots.txt$ http://%{HTTP_HOST}/robots.php [R=302,L]", но г-н VladSavitsky написал "Яндекс не видит robots.txt по редиректу.". Я проверял потом в Яндекс.Вебмастер (http://webmaster.yandex.ru/site/indexed-pages.xml?host=) - действительно не видит, и тупо перебором опций при варианте с [L,QSA] Я.ВМ увидел-таки мой robots.txt . Я не силен в .htaccess, так что можете отговорить от этого варианта.
Навороты в robots.txt и условия для разных доменов можете придумать сами.
Использую только один файл robots.php
Итак, инструкция.
Работаем только в корне хостинга (там где находятся папки drupal includes\, misc\, modules\ и т.д.).
Удалил оригинальный robots.txt (или переименуйте)
В файле .htaccess самой первой строкой добавил код:
RewriteRule ^robots.txt$ /robots.php [L,QSA]
Создал robots.php
Код файла robots.php:
<?php
header('Content-type: text/plain');
$host = $_SERVER['HTTP_HOST']; // www.site.ru или site.ru