Назад | Перейти на главную страницу

Как создать глобальный файл robots.txt, который будет добавлен к собственному robots.txt каждого домена на Apache?

Я знаю могу создать ОДИН файл robots.txt для всех доменов на сервере Apache *, но я хочу добавить в файл robots.txt каждого домена (если он уже существует). Мне нужны некоторые общие правила для всех доменов, но мне нужно разрешить различным доменам иметь свои уникальные правила.

Есть ли способ добиться этого?

(* В моем случае Apache 2.2.x)

С точки зрения Apache, robots.txt это просто актив, который нужно обслуживать. Вы можете изменить возвращаемый контент, когда robots.txt запрашивается путем прохождения через выходной фильтр.

Если вы хотите добавить текст, вы можете определить внешний фильтр. Предполагая, что Apache работает в Unix-подобной операционной системе, конфигурация фильтра может быть

ExtFilterDefine appendRobotstxt cmd="/bin/cat - /var/www/html/robots-tail.txt"
<Location /robots.txt>
    SetOutputFilter appendRobotstxt
</Location>

Это объединит robots-tail.txt до конца ответа.

Обратите внимание, что вам, вероятно, придется внести изменения. Если в домене уже есть

User-agent: *
Disallow: /search

и вы хотите добавить для всех доменов

User-agent: *
Disallow: /admin/

тебе придется это сделать

User-agent: *
Disallow: /search
Disallow: /admin/

потому что парсеры robots.txt останавливаются, как только находят соответствующий им блок.