Temos uma configuração de servidor da Web de desenvolvimento XAMPP Apache com hosts virtuais e queremos impedir que os serviços de rastreamento rastreiem todos os nossos sites. Isso é feito facilmente com um arquivo robots.txt. No entanto, preferimos não incluir um robots.txt não permitido em todos os vhost e depois removê-lo quando formos ao vivo com o site em outro servidor.
Existe uma maneira de um arquivo de configuração do apache reescrever todas as solicitações para robots.txt em todos os vhosts em um único arquivo robots.txt?
Se sim, você poderia me dar um exemplo? Eu acho que seria algo assim:
RewriteEngine On
RewriteRule .*robots\.txt$ C:\xampp\vhosts\override-robots.txt [L]
Obrigado!
apache-2.2
php
robots.txt
Michael Berkompas
fonte
fonte
Respostas:
O Apache mod_alias foi projetado para isso e está disponível no sistema principal do Apache, e pode ser configurado em um local com quase nenhuma sobrecarga de processamento, ao contrário do mod_rewrite.
Com essa linha no arquivo apache2.conf, fora de todos os vhost, http://example.com/robots.txt - em qualquer site em que ele atenda, será gerado o arquivo fornecido.
fonte
Alias
em cada<VirtualHost>
bloco. +1.<Location "/robots.txt"> Allow from all </Location>
imediatamente depois dele dentro do main<IfModule alias_module>
Coloque seu
robots.txt
arquivo global comum em algum lugar do sistema de arquivos do servidor, acessível ao processo apache. Para fins de ilustração, presumo que esteja/srv/robots.txt
.Em seguida, para configurar
mod_rewrite
para servir esse arquivo aos clientes que o solicitam, coloque as seguintes regras no<VirtualHost>
bloco de configuração de cada vhost :Se você estiver colocando as regras de reescrita em
.htaccess
arquivos por diretório, em vez de<VirtualHost>
blocos, precisará modificar um pouco as regras:fonte
mod_rewrite
truque muito complicado . UseAlias
como sugerido por Alister.Não tenho certeza se você está executando o XAMPP no Linux ou não, mas se estiver, você pode criar um link simbólico de todos os hosts virtuais para o mesmo arquivo robots.txt, mas é necessário garantir que sua configuração do Apache para cada host virtual seja permitido seguir links simbólicos (de acordo com a
<Directory>
diretivaOptions FollowSymLinks
).fonte
Abordagem diferente para solução.
Eu hospedo vários (mais de 300) hosts virtuais no meu ambiente de cluster. Para proteger meus servidores contra ataques de rastreadores, defino o Atraso de rastreamento por 10 segundos.
No entanto, não consigo impor todos os meus clientes com uma configuração robots.txt fixa. Permito que meus clientes usem seu próprio robots.txt, se desejarem.
O módulo de reescrita primeiro verifica se o arquivo existe. Se não existir, os módulos reescrevem para minha configuração padrão. Exemplo de código abaixo ...
Para manter a reescrita interna, o alias deve ser usado. Em vez de definir um novo alias que pode causar alguns conflitos do lado do usuário, localizei o meu robots.txt dentro da pasta / APACHE / error / que já possui um alias como configuração padrão.
fonte