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

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

Аватар пользователя MjM@drupal.org MjM@drupal.org 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

$host = str_replace(array("www."), "", $host); // www.site.ru => site.ru , site.ru останется как site.ru
$host = "www.".$host; // site.ru => www.site.ru
print_r("# Robots.txt for ".$host); print_r("\n"); // # Robots.txt for www.site.ru

$common_disallows = "
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /sites/
Disallow: /themes/
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact/
Disallow: /logout/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=contact/
Disallow: /?q=logout/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
";

print_r("User-Agent: *
Crawl-delay: 10");
print_r($common_disallows);
print_r("Host: ".$host); print_r("\n");

print_r("User-agent: Yandex");
print_r($common_disallows);
print_r("Host: ".$host); print_r("\n");

?>

Комментарии