Eu gerencio um site que fornece Subversion & TRAC para muitos projetos de código aberto. Isso funciona muito bem com uma exceção: muitos mecanismos de pesquisa não se importam com robots.txt
e DoS no servidor da Web com muitas solicitações paralelas no TRAC, por exemplo, as alterações do TRAC como tar / zip.
Como executo muitos repositórios do TRAC em um domínio, uso curingas em robots.txt
, o que, de acordo com o Google, deve ser permitido:
User-agent: *
Disallow: /*/changeset
Disallow: /*/browser
Disallow: /*/log
Infelizmente, até o Google não se importa com isso, embora as ferramentas para webmasters confirmem que os URIs específicos devam ser ignorados. E sim, eu disse a eles, mas eles não se importaram. Com certeza outros como o Yandex também não se importam com isso.
Assim, o plano B é para bloqueá-los na configuração do Apache, um amigo meu me deu algumas dicas sobre como fazer isso:
<Directory /foo/bar>
SetEnvIf User-Agent Yandex BlockYandex=1
SetEnvIf User-Agent METASpider BlockMETASpider=1
SetEnvIf User-Agent Mail.ru BlockMailru=1
Order allow,deny
Allow from all
Deny from env=BlockYandex
Deny from env=BlockMETASpider
Deny from env=BlockMailru
</Directory>
Agora, tento descobrir se posso fazer algo assim com caracteres curinga, por isso não preciso fazer uma seção <Directory>
para cada repositório. Encontrei <LocationMatch>
nos documentos do Apache , mas não tenho certeza se posso usar isso como um substituto para <Directory>
.
Então, minha pergunta é se posso usar <LocationMatch>
para isso e / ou alguém tem algumas ideias melhores sobre como filtrar os bots no lado do servidor?