it-swarm.com.de

Stellen Sie für jede Site, die sich in demselben Verzeichnis befindet, eine andere robots.txt-Datei bereit

Wir haben ein globales Markenwebsite-Projekt, für das wir nur den LATAM-Teil bearbeiten. Hier gibt es einen Website-Installationsprozess, bei dem eine Website mit mehreren ccTLDs installiert werden kann, um die Kosten zu senken.

Aus diesem Grund ist die robots.txt in www.domain.com/robots.txt dieselbe Datei in www.domain.com.ar/robots.txt.

Wir möchten benutzerdefinierte robots.txt-Dateien für jede Ländereinstellung von LATAM (AR, CO, CL usw.) implementieren. Eine Lösung, über die wir nachdenken, ist die Umleitung von www.domain.com.ar/robots.txt zu 301 zu www.domain.com.ar/directory/robots.txt.

Auf diese Weise könnten wir benutzerdefinierte robots.txt-Dateien für jede Ländereinstellung haben.

  1. Macht das Sinn?
  2. Ist es möglich, eine robots.txt-Datei in eine andere robots.txt-Datei umzuleiten?
  3. Irgendwelche anderen Vorschläge?

Vielen Dank im Voraus für jede Eingabe, die Sie haben könnten.

6
Edgar Quintero

Ich würde nicht damit rechnen, dass alle Spinnen einer Umleitung folgen können, um zu einer _robots.txt_ -Datei zu gelangen. Siehe: Respektiert Google einen Redirect-Header für robots.txt für einen anderen Dateinamen?

Angenommen, Sie sind auf einem Apache-Server gehostet, können Sie mod_rewrite aus Ihrer _.htaccess_ -Datei verwenden, um die richtige Datei für die richtige Domain bereitzustellen:

_RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.example\.([a-z\.]+)$
RewriteRule ^robots.txt /%1/robots.txt [L]
_

In diesem Fall befindet sich Ihre _robots.txt_ -Datei für Ihre _.cl_ -Domäne in _/cl/robots.txt_ und Ihre _.com.aurobots.txt_ -Datei in _/com.au/robots.txt_

9

Während dies funktionieren sollte , hat es ein paar mögliche Nachteile:

  • Jeder Crawler muss zwei HTTP-Anforderungen ausführen: eine, um die Umleitung zu ermitteln, und eine andere, um die Datei tatsächlich abzurufen.

  • Einige Crawler behandeln die 301-Antwort für robots.txt möglicherweise nicht richtig. Es gibt nichts in der original robots.txt Spezifikation , das etwas über Weiterleitungen aussagt. Vermutlich sollten sie genauso behandelt werden wie normale Webseiten (dh gefolgt), aber es gibt keine Garantie dafür, dass alle die unzähligen Roboter, die Ihre Site crawlen möchten, werden das richtig machen.

    (Der Internet-Entwurf von 1997 besagt ausdrücklich, dass " [o] n Serverantwort, die die Umleitung (HTTP-Statuscode 3XX) anzeigt, ein Roboter den Umleitungen folgen sollte, bis eine Ressource kann gefunden werden ", aber da dies nie zu einem offiziellen Standard wurde, gibt es keine wirkliche Anforderung, die Crawler tatsächlich zu befolgen.)

Im Allgemeinen ist es besser, Ihren Webserver so zu konfigurieren, dass er abhängig von der Domain, für die er angefordert wird, unterschiedliche Inhalte für robots.txt zurückgibt. Mit Apache mod_rewrite könnten Sie beispielsweise robots.txt intern in eine domänenspezifische Datei wie die folgende umschreiben:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} ^(www\.)?domain(\.com?)?\.([a-z][a-z])$
RewriteCond robots_%3.txt -f
RewriteRule ^robots\.txt$ robots_%3.txt [NS]

Dieser Code, der in einer .htaccess -Datei im freigegebenen Dokumentenstamm der Sites abgelegt ist, sollte alle Anforderungen für z. www.domain.com.ar/robots.txt in die Datei robots_ar.txt, sofern vorhanden (das prüft die zweite RewriteCond). Wenn die Datei nicht vorhanden ist oder der Hostname nicht mit dem regulären Ausdruck übereinstimmt, wird standardmäßig die Standarddatei robots.txt bereitgestellt.

(Der Hostname regexp sollte flexibel genug sein, um auch URLs ohne das Präfix www. zuzuordnen und statt co. (wie in com.) auch domain.co.uk zu akzeptieren sogar nur eine einfache ccTLD nach domain; bei Bedarf können Sie diese optimieren, um noch mehr Fälle zu akzeptieren. Beachten Sie, dass ich diesen Code nicht getestet habe, sodass er Fehler/Tippfehler enthalten kann.)

Eine andere Möglichkeit wäre, Anforderungen für robots.txt intern in (z. B.) ein PHP -Skript umzuschreiben, das dann den Inhalt der Datei dynamisch auf der Grundlage des Hostnamens und aller anderen gewünschten Elemente generieren kann. Mit mod_rewrite könnte dies einfach erreicht werden mit:

RewriteEngine On
RewriteBase /

RewriteRule ^robots\.txt$ robots.php [NS]

(Das Schreiben des aktuellen Skripts robots.php bleibt als Übung übrig.)

4
Ilmari Karonen