web-dev-qa-db-fra.com

Robots.txt pour plusieurs domaines avec le même site Web

J'ai les trois domaines suivants:

  1. example1.com (Interdit)
  2. example2.com (Interdit)
  3. example3.com (autoriser)

Tous les domaines pointent sur le même dossier, public_html.

Comment interdire aux moteurs de recherche d'analyser des pages sur les deux premiers domaines?

7
Saurabh Bajpai

Vous devez servir de manière conditionnelle un fichier robots.txt différent en fonction du domaine/hôte auquel vous avez accédé. Sur Apache, vous pouvez le faire avec .htaccess:

RewriteEngine On
RewriteCond %{HTTP_Host} ^(example1\.com|example2\.com)$
RewriteRule ^robots\.txt$ /robots-disallow.txt [L]

Ceci est spécifique à votre exemple, où il servira un fichier robots.txt "non autorisé" (robots-disallow.txt) sur # 1 et # 2, sinon la demande échouera et servira votre fichier robots.txt normal pour # 3 qui "permet".

9
MrWhite

Je travaille sur un site similaire où je gère cela avec PHP.

Dans mon .htaccess, j'ai une ligne de lecture:

RewriteRule ^robots.txt$ robots.php

Dans robots.php, j'ai les éléments suivants:

<?php
  header('Content-Type: text/plain; charset=utf-8');

  if($_SERVER['HTTP_Host']=='www.allowed-site.fr'){
    echo 'User-agent: *
    Disallow: 
    Host: https://www.allowed-site.fr/
    Sitemap: https://www.allowed-site.fr/sitemap-fr.xml
    ';
  } else if($_SERVER['HTTP_Host']=='www.allowed-site.lu'){
    echo 'User-agent: *
    Disallow: /example/
    Host: https://www.allowed-site.lu/
    Sitemap: https://www.allowed-site.lu/sitemap-lu.xml
    ';
  } else {
    echo 'User-agent: *
    Disallow: /
    ';
  }
?>

Cela vous permet d’avoir un fichier unique dans lequel vous pouvez personnaliser votre fichier robots.txt pour chaque domaine.

3
Andrew Lott

Comme vous n'autorisez les moteurs de recherche qu'à un seul domaine, vos règles Rewrite peuvent être simplifiées. Il suffit d'utiliser ceci:

RewriteEngine On
RewriteCond %{HTTP_Host} ^example3\.com$
RewriteRule ^robots\.txt$ /robots-allow.txt [L]

Dans le dossier public_html, vous devez créer deux fichiers. robots.txt et robots-allow.txt

Dans le fichier robots.txt, vous devez ajouter les éléments suivants:

User-agent: searchengine
Disallow: /

remplacez le moteur de recherche par Google ou le moteur que vous souhaitez bloquer. Répétez les lignes ci-dessus si vous souhaitez ajouter plusieurs moteurs de recherche. Ensuite, votre fichier robots.txt se présentera comme suit:

User-agent: searchengine
Disallow: /
User-agent: searchengine2
Disallow: /
User-agent: searchengine3
Disallow: /

Ensuite, dans robots-allow.txt, vous pouvez le laisser sous forme de fichier vide ou ajuster le délai d'analyse pour tous les moteurs de recherche, comme ceci:

User-agent: *
Crawl-delay: 1

Le nombre après le délai d'analyse représente le temps d'attente minimal en secondes entre les demandes adressées au serveur par le même agent d'utilisateur.

1
Mike