Как создать файл robots.txt для всех доменов на сервере Apache

Это кажется, что у Вас есть две проблемы. Перемещение зон DNS к новому серверу и направление клиентов к новому серверу.

Перемещение зон

Принятие зон DNS интегрируется Active Directory, это - просто вопрос продвижения новых серверов DNS к тому, чтобы быть компьютерами контроллера домена, поскольку только компьютеры контроллера домена могут работать, серверы DNS, размещающие AD, интегрировали зоны (http://technet.microsoft.com/en-us/library/cc978010.aspx).

Если Вы не используете интегрированные зоны Active Directory (т.е. стандартные зоны), можно использовать сценарий, который я записал в этом ответе для миграции зон от одного сервера до другого: Переместите 200 Доменов от сервера Win2003 DNS до другого

Направление клиентов к новым DNS-серверам

Клиенты Windows, которые статически настроены для использования существующих серверов DNS, потребуют, чтобы изменения были сделаны, или вручную или при помощи автоматизированного инструмента, такого как "netsh". Если бы у Вас есть много статически настроенных машин с помощью сценария, вероятно, было бы самым легким.

Клиенты, которые получают их присвоения сервера DNS от DHCP, намного легче. Изменитесь серверы DNS, указанные в DHCP, определяют объем и ожидают в течение времени истечения срока арендного договора прежде, чем вывести из эксплуатации старые серверы DNS.

Наконец, если у Вас есть другие операционные системы (встроенные устройства, и т.д.), которые имеют серверы DNS, указанные быть уверенными, что Вы изменяете их, также.

Идеально, необходимо попытаться выделить некоторые IP-адреса для серверов DNS, таким образом, что их дюйм/с можно повторно присвоить другим серверам в будущем, вместо того, чтобы иметь необходимость пройти это испытание когда-либо снова. Попытайтесь обратиться ко всем серверам / сервисы именем DNS в будущем, и сохранить IP-адреса используемыми серверами DNS свободный быть повторно присвоенными новым серверам в будущем. (Например, также не используйте IP-адреса сервера DNS в качестве адреса, указанного для некоторого другого вида служебной программы, которая не могла бы всегда находиться на той же машине как программное обеспечение сервера DNS. При необходимости присвойте вторичные IP-адреса серверам DNS в таких целях.)

10
задан 16 December 2010 в 22:48
4 ответа

Apache mod_alias разработан для этого и доступный от базовой системы Apache и может быть установлен в одном месте почти ни с какой обработкой наверху, в отличие от mod_rewrite.

Alias /robots.txt C:/xampp/vhosts/override-robots.txt

С той строкой в apache2.conf файле, вне всего vhost's, http://example.com/robots.txt - на любом веб-сайте это служит, произведет данный файл.

25
ответ дан 2 December 2019 в 22:00

Поместите свое общее глобальное robots.txt зарегистрируйте где-нибудь в файловой системе Вашего сервера, которая доступна для апачского процесса. Ради иллюстрации я предположу, что это в /srv/robots.txt.

Затем для установки mod_rewrite для обслуживания того файла клиентам, которые запрашивают это поместите следующие правила в каждый vhost's <VirtualHost> блок конфигурации:

RewriteEngine on
RewriteRule ^/robots.txt$ /srv/robots.txt [NC, L]

Если Вы помещаете переписать правила в на каталог .htaccess файлы, а не <VirtualHost> блоки, необходимо будет изменить правила немного:

RewriteEngine on
RewriteBase /
RewriteRule ^robots.txt$ /srv/robots.txt [NC, L]
1
ответ дан 2 December 2019 в 22:00

Не уверенный при выполнении XAMPP на Linux или нет, но если Вы, Вы могли бы создать символьную ссылку от всех виртуальных хостов до того же файла robots.txt, но необходимо удостовериться, что конфигурации Apache для каждого виртуального хоста позволяют следовать за символьными ссылками (под <Directory> директива Options FollowSymLinks).

0
ответ дан 2 December 2019 в 22:00

Другой подход к решению.

Я размещаю несколько (более 300) виртуальных хостов в своей кластерной среде. Чтобы защитить мои серверы от попадания сканеров, я определяю Crawl-delay равным 10 секундам.

Однако я не могу принудительно использовать все мои клиенты с фиксированной конфигурацией robots.txt. Я позволяю своим клиентам использовать собственный файл robots.txt, если они этого хотят.

Модуль перезаписи сначала проверяет, существует ли файл. Если он не существует, модули перезаписываются на мою конфигурацию по умолчанию. Пример кода ниже ...

Чтобы сохранить внутреннюю перезапись, следует использовать псевдоним. Вместо определения нового псевдонима, который может вызвать конфликты на стороне пользователя, я разместил свой robots.txt в папке / APACHE / error /, в которой уже есть псевдоним в качестве конфигурации по умолчанию.

<Directory /HOSTING/*/*/public_html>
        Options SymLinksIfOwnerMatch
        <Files robots.txt>
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} -f [OR]
                RewriteCond %{REQUEST_FILENAME} -d
                RewriteRule (.*) - [L]
                RewriteRule (.*) /error/robots.txt [L]
        </Files>
</Directory>
0
ответ дан 2 December 2019 в 22:00

Теги

Похожие вопросы