Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Robots mit .htaccess ausschließen - Problem

Alles zum Thema: Robots, Spider, Logfile-Auswertung und Reports
Neues Thema Antworten
Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 21.02.2005, 17:05

Hallo,

das ist zwar kein .htaccess-Thread aber ich habe eine Frage zu folgendem Code:

RewriteCond %{HTTP_USER_AGENT} ^8484/ Boston/ Project/ v/ 1/.0 [OR]
RewriteCond %{HTTP_USER_AGENT} ^Alexibot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Art/-Online
RewriteRule ^.* - [F]

Ich will bestimmte Bots ausschließen von meinen Seiten. Die erste Zeile funktioniert nicht, die restlichen ja. Mit der ersten Zeile dabei erscheint nur Fehler. Wie gibt man Strings ein? Der erste String soll "8484 Boston Projekt v 1.0" heißen. Der Slash steht für ein folgendes Sonderzeichen. Bei welchen Zeichen braucht es den? Zahlen, Leerzeichen, Punkte usw? Warum kommt dann aber immer noch ein Fehler mit der Zeile?

Ich habe noch eine Frage. Gibt es Platzhalter so wie * und ? in Dos? Wäre für manche Emailsammler gut, die die Meldestrings verändern um nicht erkannt zu werden aber trotzdem manche Teile eindeutig bleiben.

Kann jemand helfen zu den Fragen? Wo liegt der Fehler, wo braucht es den Slash und was gibt es für Platzhalter in Strings.

Grüße,
Sebastian

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 21.02.2005, 17:12

\ statt / , dann sollte es gehen

wenn nur Teile gleich sind : einfach auf ^ und/oder $ verzichten, dann gilt die RewriteCond auch dann, wenn der Teilstring irgendwo im User-agent vorkommt.

Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 21.02.2005, 17:36

Damit funktioniert es.

Die Frage ist, bei welchen Zeichen muß man diesen Backslash benutzen? Scheinbar mindestens bei Punkten und Leerzeichen. Wobei noch?

Wie ist das mit den Platzhaltern? ^bedeutet daß man vom Anfang des Strings anfängt und $ bedeutet das Ende, ja? Was mache ich bei diesem Spider:

Zeus 11389 Webster Pro V2.9 Win32 Bei ihm ist die Zahl nach Zeus immer unterschiedlich. Ich habe also mehrere feste Teile. Wie schreibe ich die in einer Condition?

Grüße,
Sebastian

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 21.02.2005, 17:39

Backslash
weiß ich gerade nicht auswendig, warten bis unser Forumsmitglied Caterham vorbeischaut :)
Zeus 11389 Webster Pro V2.9
einfach
^Zeus [OR]
und gut ist's

Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 21.02.2005, 18:02

Damit würde ich aber auch alle anderen Zugriffe ausschließen die mit Zeus anfangen. Ich würde das gern so weit wie möglich einschränken.

Grüße,
Sebastian

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 22.02.2005, 09:06

Vielleicht

RewriteCond %{HTTP_USER_AGENT} ^Zeus\ ([0-9]*)\ Webster\ Pro\ V[0-9]\.[0-9]

= Zeus + irgendeine Zahl + Webster Pro V + irgendeine Versionsnummer

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 22.02.2005, 13:33

Sebastian hat geschrieben:Die Frage ist, bei welchen Zeichen muß man diesen Backslash benutzen? Scheinbar mindestens bei Punkten und Leerzeichen. Wobei noch?
Bei Leerzeichen und allen Zeichen, die in einem Regulären Ausdruck eine besondere Bedeutung haben, wie z. B. \.+*?()[]{}^$ (hmm, hab ich was vergessen?)
Sebastian hat geschrieben:Wie ist das mit den Platzhaltern? ^bedeutet daß man vom Anfang des Strings anfängt und $ bedeutet das Ende, ja? Was mache ich bei diesem Spider:

Zeus 11389 Webster Pro V2.9 Win32 Bei ihm ist die Zahl nach Zeus immer unterschiedlich. Ich habe also mehrere feste Teile. Wie schreibe ich die in einer Condition?
Mein Vorschlag:
^Zeus\ \d+\ Webster\ Pro

cu, Robo :)

Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 22.02.2005, 14:42

Danke! Ich probier das mal.

Gibt es eigentlich eine gute Seite wo man die Syntax von .htaccess insbesondere solche Stringsachen usw leicht lernen kann?

Grüße,
Sebastian

Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 22.02.2005, 16:26

Steht das d+ für eine beliebige Anzahl von Zeichen oder Zahlen? Warum wird es mit einem Backslash eingeleitet? Der zeigt doch an, daß das nächste Zeichen als String, nicht als Befehl interpretiert werden soll oder?

Ich habe jetzt in anderen Listen manchmal Punkt und Stern gefunden. Die beide nicht Teil des Strings sind. Steht Punkt-Stern für eine beliebige Anzahl Zeichen? Wenn man kein $ angibt wird dann auch alles gefiltert wenn nach dem Text noch andere Zeichen kommen?

Grüße,
Sebastian

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 22.02.2005, 17:44

Sebastian hat geschrieben:Steht das d+ für eine beliebige Anzahl von Zeichen oder Zahlen?
\d ist eine Zeichenklasse und steht für digit, also eine Ziffer. + ist ein Quantifier und bedeutet 1 bis viele.
Sebastian hat geschrieben:Warum wird es mit einem Backslash eingeleitet?
Weil es sonst d bedeuten würde. :-)
Sebastian hat geschrieben:Der zeigt doch an, daß das nächste Zeichen als String, nicht als Befehl interpretiert werden soll oder?
Nö, das kommt ganz darauf an, was auf den Backslash folgt. :-)
Backslashes leiten Escape-Sequenzen, Zeichenklassen und Anker ein. Ausserdem schützen sie ein nachfolgendes Metazeichen.
Sebastian hat geschrieben:Ich habe jetzt in anderen Listen manchmal Punkt und Stern gefunden. Die beide nicht Teil des Strings sind. Steht Punkt-Stern für eine beliebige Anzahl Zeichen?
Der Punkt steht für ein beliebiges Zeichen und der Stern ist wieder ein Quantifier und bedeutet 0 bis viele.

.* bedeutet also: beliebiges Zeichen, beliebige Anzahl (auch 0)

.+ bedeutet übrigens: beliebiges Zeichen, einmal oder öfter

. bedeutet: genau ein beliebiges Zeichen

.? bedeutet: beliebiges Zeichen, null- oder einmal

\. bedeutet: Punkt :-)
Sebastian hat geschrieben:Wenn man kein $ angibt wird dann auch alles gefiltert wenn nach dem Text noch andere Zeichen kommen?
Korrekt.

cu, Robo :)

Sebastian
PostRank 4
PostRank 4
Beiträge: 160
Registriert: 18.12.2004, 21:50

Beitrag von Sebastian » 23.02.2005, 02:00

Danke für die Erklärung!

Grüße,
Sebastian

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag