Robots.txt für mehrere Domains mit derselben Website

8

Ich habe die folgenden drei Domänen:

  1. example1.com (Nicht verbieten)
  2. example2.com (Nicht verbieten)
  3. example3.com (ermöglichen)

Alle Domains verweisen auf denselben Ordner public_html.

Wie kann ich verhindern, dass Suchmaschinen Seiten in den ersten beiden Domains crawlen?

Saurabh Bajpai
quelle
1
Wie "zeigen" Sie alle drei Domänen public_html?
Zigojacko
1
Welche Serversoftware verwenden Sie?
MrWhite

Antworten:

9

Sie müssen bedingt eine andere robots.txt-Datei bereitstellen, je nachdem, auf welche Domäne / welchen Host zugegriffen wurde. Unter Apache können Sie dies in .htaccess tun:

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

Dies ist spezifisch für Ihr Beispiel, in dem robots.txt ( robots-disallow.txt) für # 1 und # 2 "nicht zugelassen" wird. Andernfalls wird die Anforderung durchfallen und Ihre reguläre robots.txtDatei für # 3 bereitstellen, was "erlaubt".

Herr weiß
quelle
4

Ich arbeite an einer ähnlichen Website, auf der ich dies mit PHP verwalte.

In meinem .htaccess habe ich eine Zeilenlesung:

RewriteRule ^robots.txt$ robots.php

In robots.php habe ich folgendes:

<?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: /
    ';
  }
?>

Auf diese Weise können Sie eine einzelne Datei erstellen, in der Sie Ihre robots.txt für jede einzelne Domain anpassen können.

Andrew Lott
quelle
1

Da Sie Suchmaschinen nur eine Domain erlauben, können Ihre RewriteRules einfacher gestaltet werden. Verwenden Sie einfach dies:

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

Im Ordner public_html müssen Sie zwei Dateien erstellen. robots.txt und robots-allow.txt

In robots.txt müssen Sie Folgendes hinzufügen:

User-agent: searchengine
Disallow: /

Ersetzen Sie die Suchmaschine durch Google oder eine andere Engine, die Sie blockieren möchten. Wiederholen Sie die obigen Zeilen, wenn Sie weitere Suchmaschinen hinzufügen möchten. Dann wird sich herausstellen, dass Ihre robots.txt ungefähr so ​​aussieht:

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

In robots-allow.txt können Sie es dann als leere Datei belassen oder die Durchforstungsverzögerung für alle Suchmaschinen wie folgt anpassen:

User-agent: *
Crawl-delay: 1

Die Zahl nach der Durchforstungsverzögerung gibt die minimale Wartezeit in Sekunden zwischen Anforderungen an den Server von demselben Benutzeragenten an.

Mike
quelle