Frage

Ich habe etwas von einem Staging-Server im öffentlichen Internet laufenden Kopien des Produktionscodes für einige Websites. Ich würde wirklich mag es nicht, wenn die Staging-indexierte Seiten bekommen.

Gibt es eine Möglichkeit, ich meine httpd.conf auf dem Staging-Server ändern kann, Suchmaschinen-Crawler zu blockieren?

die robots.txt ändern würde nicht wirklich funktionieren, da ich Skripte verwenden die gleiche Codebasis auf beiden Servern zu kopieren. Außerdem würde ich eher nicht die virtuelle Host conf-Dateien ändern entweder, da es eine Reihe von Websites, und ich will nicht zu haben, daran zu erinnern, über eine bestimmte Einstellung zu kopieren, wenn ich eine neue Website.

War es hilfreich?

Lösung

Erstellen Sie eine robots.txt-Datei mit folgendem Inhalt:

User-agent: *
Disallow: /

Setzen Sie die Datei irgendwo auf dem Staging-Server; Ihr Root-Verzeichnis ist ein großartiger Ort für sie (z /var/www/html/robots.txt).

Fügen Sie Folgendes in der httpd.conf:

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

Die SetHandler Richtlinie ist wahrscheinlich nicht erforderlich, aber es ist erforderlich, wenn Sie einen Handler wie mod_python verwenden, zum Beispiel.

Das robots.txt-Datei wird nun für alle virtuellen Hosts auf dem Server bedient werden, überschreibt jede robots.txt Datei, die Sie für einzelne Hosts haben könnten.

(Anmerkung:. Meine Antwort ist im Wesentlichen die gleiche Sache, dass ceejayoz Antwort ist darauf hindeutet, was Sie tun, aber ich hatte ein paar Minuten zu verbringen, alle Besonderheiten herauszufinden, um es an die Arbeit habe ich beschlossen, diese Antwort zu setzen hier für die Wohl anderer, die auf diese Frage stolpern könnten.)

Andere Tipps

Sie können Apache mod_rewrite verwenden, es zu tun. Nehmen wir an, dass Ihre wirklichen Host www.example.com und Staging-Host ist staging.example.com. Erstellen Sie eine Datei ‚Roboter-staging.txt‘ genannt und bedingt die Anforderung neu zu schreiben, um zu dem gehen.

In diesem Beispiel würde zum Schutz eines einzigen Staging-Website, ein bisschen einfacher Anwendungsfall geeignet sein als das, was Sie fordern, aber das hat sich zuverlässig für mich gearbeitet:

<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>

Sie könnten versuchen, die Spinnen zu einem Master robots.txt auf einem anderen Server umgeleitet werden, aber einige der Spinnen sträuben können, nachdem sie etwas anderes als ein „200 OK“ oder „404 nicht gefunden“ Return-Code von der HTTP-Anforderung zu erhalten, und sie können die umgeleiteten URL nicht lesen.

Hier ist, wie Sie das tun würden:

<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>

Könnten Sie alias robots.txt auf der Staging-Virtual zu einer restriktiven robots.txt an einem anderen Ort gehostet?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top