2008-09-04 4 views
18

Angenommen, ich habe eine Website unter http://example.com. Ich würde wirklich gerne zulassen, dass Bots die Homepage sehen, aber jede andere Seite muss blockiert werden, da es für Spider sinnlos ist. Mit anderen WortenSo richten Sie eine robot.txt ein, die nur die Standardseite einer Site zulässt

http://example.com & http://example.com/ soll erlaubt werden, aber http://example.com/anything und http://example.com/someendpoint.aspx sollen blockiert werden.

Ferner wäre es toll, wenn ich bestimmte Abfrage-Strings auf die Homepage erlauben können Passthrough: http://example.com?okparam=true

aber nicht http://example.com?anythingbutokparam=true

Antwort

43

Also nach einigen Recherchen, hier ist das, was ich gefunden - eine Lösung, die durch die großen Suchanbieter akzeptabel: google, yahoo & msn (I auf einen Validator hier finden kann):

User-Agent: * 
Disallow: /* 
Allow: /?okparam= 
Allow: /$ 

Der Trick ist, das $, um das Ende der URL zu markieren.

0

Grund robots.txt:

Disallow: /subdir/ 

I glaube nicht, dass du einen Ausdruck erstellen kannst, der 'alles außer der Wurzel' sagt, du musst alle Unterverzeichnisse ausfüllen.

Die Einschränkung der Abfragezeichenfolge ist auch in robots.txt nicht möglich. Sie müssen es im Hintergrundcode (dem Verarbeitungsteil) oder vielleicht mit Server-Rewrite-Regeln tun.

0
Disallow: * 
Allow: index.ext 

Wenn ich mich richtig erinnere, sollte die zweite Klausel die erste außer Kraft setzen.

1

Google's Webmaster Tools Bericht, dass die Ablehnung immer Vorrang vor zulassen hat, so gibt es keine einfache Möglichkeit, dies in einer robots.txt Datei zu tun.

Sie könnten dies erreichen, indem Sie ein noindex,nofollowMETA Tag in das HTML jeder Seite außer der Homepage einfügen.

0

Soweit ich weiß, unterstützen nicht alle Crawler das Tag erlauben. Eine mögliche Lösung besteht darin, alles außer der Startseite in einen anderen Ordner zu stellen und diesen Ordner nicht zuzulassen.

Verwandte Themen