MjM@drupal.org: Блог

Главные вкладки

Динамический robots.txt при мультисайтинге без SSI

11 июня 2010 в 13:01
2

Статья здесь: 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