Pergunta

Eu tenho um pouco de um servidor de teste na internet pública executando cópias do código de produção por alguns sites. Eu não gostaria realmente que se os sites de preparo indexados.

Existe uma maneira que eu posso modificar o meu httpd.conf no servidor de teste para crawlers bloco do motor de busca?

Alterar o robots.txt não seria realmente trabalhar desde que eu usar scripts para copiar a mesma base de código para ambos os servidores. Além disso, eu preferiria não alterar os arquivos de conf anfitrião virtuais quer como há um monte de sites e eu não quero ter que lembrar de copiar um certo ajuste se eu fizer um novo site.

Foi útil?

Solução

Crie um arquivo robots.txt com o seguinte conteúdo:

User-agent: *
Disallow: /

Coloque que em algum lugar do arquivo em seu servidor de teste; seu diretório raiz é um ótimo lugar para ele (por exemplo /var/www/html/robots.txt).

Adicione o seguinte ao seu arquivo httpd.conf:

# Exclude all robots
<Location "/robots.txt">
    SetHandler None
</Location>
Alias /robots.txt /path/to/robots.txt

A directiva SetHandler provavelmente não é necessário, mas pode ser necessária se você estiver usando um manipulador como mod_python, por exemplo.

Esse arquivo robots.txt será agora servida para todos os hosts virtuais em seu servidor, substituindo qualquer arquivo robots.txt que você pode ter para hosts individuais.

(Nota:. Minha resposta é essencialmente a mesma coisa que a resposta de ceejayoz está sugerindo que você faz, mas eu tive que gastar alguns minutos extra para descobrir todos os detalhes para obtê-lo para o trabalho eu decidi colocar esta resposta aqui para o bem dos outros que pode tropeçar em cima desta questão.)

Outras dicas

Você pode usar o mod_rewrite do Apache para fazê-lo. Vamos supor que o seu host real é www.example.com e seu anfitrião encenação é staging.example.com. Criar um arquivo chamado 'robôs-staging.txt' e condicionalmente reescrever o pedido para ir para isso.

Este exemplo seria adequado para proteger um único site de teste, um pouco de um caso de uso mais simples do que o que você está pedindo, mas isso tem funcionado de forma confiável para mim:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Dissuade web spiders from crawling the staging site
  RewriteCond %{HTTP_HOST}  ^staging\.example\.com$
  RewriteRule ^robots.txt$ robots-staging.txt [L]
</IfModule>

Você poderia tentar redirecionar as aranhas para um robots.txt mestre em um servidor diferente, mas algumas das aranhas podem hesitar depois de se obter outra coisa senão um "200 OK" ou "404 não encontrado" código de retorno a partir da solicitação HTTP, e eles não podem ler a URL redirecionada.

Veja como você faria isso:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Redirect web spiders to a robots.txt file elsewhere (possibly unreliable)
  RewriteRule ^robots.txt$ http://www.example.com/robots-staging.txt [R]
</IfModule>

Você poderia apelido robots.txt nas VirtualHosts de preparo para um robots.txt restritiva hospedado em um local diferente?

Para parar realmente a indexação das páginas, você vai precisar para esconder os sites de trás HTTP auth . Você pode fazer isso na sua configuração global Apache e usar um arquivo .htpasswd simples.

A única desvantagem para isso é que agora você tem que digitar um nome de usuário / senha na primeira vez que você navegar para qualquer página no servidor de teste.

Dependendo do seu cenário de implantação, você deve procurar maneiras de implantar diferentes arquivos robots.txt para dev / estágio / test / prod (ou qualquer combinação que você tem). Supondo que você tenha diferentes arquivos de configuração de banco de dados ou (ou o que é análogo) sobre os diferentes servidores, este deve seguir um processo semelhante (você não ter senhas diferentes para seus bancos de dados, certo?)

Se você não tem um processo de implantação de uma etapa no lugar, esta é provavelmente uma boa motivação para obter um ... há toneladas de ferramentas para fora lá para ambientes diferentes - Capistrano é um muito bom, e favorecido em o mundo Rails / Django, mas não é de forma o único.

Na falta de tudo isso, você provavelmente poderia configurar uma directiva Alias ??global em sua configuração do Apache que se aplicaria a todos os VirtualHosts e apontam para um robots.txt restritiva

Tente Usando Apache para parar robôs maus . Você pode obter o agentes de usuário on-line ou apenas permitir que os navegadores, em vez de tentar bloquear todos os bots.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top