2009-08-19 6 views
0

wir haben eine große Community-Website in Drupal bauen, wo die Website eine obligatorische agecheck hat, bevor Sie den Inhalt der Website zugreifen könnenCrawler wird auf der obligatorischen agecheck Seite in Drupal stecken

es geprüft, ob ein Cookie zu sein Wenn nicht, werden Sie auf die Altersprüfungsseite weitergeleitet.

Jetzt glauben wir, dass Crawler auf diesem Teil stecken bleiben, sie werden zum Altercheck weitergeleitet und kriegen nie die ganze Website zu kriechen.

hat jemand das vorher gehabt? Was wäre der beste Weg, um mit so etwas umzugehen?

Sander

EDIT

Es tut mir leid nur dies jetzt zu erwähnen, eines der Probleme mit Crawlern ist auch, dass, wenn jemand in der Gemeinde Beiträge etwas zu seiner Wand auf Facebook, facebook krabbelt die Seite zurück, um Bilder und Beschreibungen (die in Meta-Tags angegeben sind) zu holen aber facebook wird auch auf die alecheck-Seite weitergeleitet. würde eine useragentcheck funktionieren, wenn ich den Facebook-Crawler hinzufügen? Wenn ja: Würde jemand den facebook Crawler dann genau kennen?

Die Lösung unten ist eine, dass wir auch ein Kreuz im Netz kamen. Wenn der Facebook-Crawler zu dieser Liste hinzugefügt wird, dann würde das alle Probleme lösen, die wir mit dieser Altercheck-Seite haben.

+1

"die Website hat eine verpflichtende Alterskontrolle" - wahrscheinlich aus einem Grund. Welche Art von Informationen möchten Sie in Suchmaschinen anzeigen? Eine "gefilterte" Version aller Seiten? Nur eine Teilmenge von Seiten, vielleicht sogar nur eine Indexdatei? – VolkerK

Antwort

2

Sie können den Benutzer-Agent überprüfen, und wenn es ein Crawler ist, überprüfen Sie nicht, ob der Browser/Benutzer den erforderlichen Cookie hat.

Here ist ein Beispiel:

function crawlerDetect($USER_AGENT) 
{ 
    $crawlers_agents = ‘Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby’; 

    if (strpos($crawlers_agents , $USER_AGENT) === false) 
     return false; 
} 

// example 

$crawler = crawlerDetect($_SERVER[’HTTP_USER_AGENT’]); 

if ($crawler) 
{ 
    // it is crawler, it’s name in $crawler variable 
} 
else 
{ 
    // usual visitor 
} 
+0

würde die Facebook-Crawler-Hilfe mit der Facebook-Frage hinzufügen? (siehe meine Bearbeitung) – Sander

+0

Ja, das wird auch dein Problem mit dem Facebook-Link beheben. Um herauszufinden, welchen User-Agent Facebook verwendet, können Sie alle Anfragen, die den Cookie-Test nicht bestehen, in einer Datenbank oder Datei speichern und dann versuchen, einen Link auf Facebook zu posten. Sie finden dann die User-Agent-Zeichenfolge in Ihrer Datenbank. – Espo

0

Gary Keith eine PHP-Klasse, die Sie verwenden können, um alle Attribute eines Besuchers zu überprüfen (zB Browser oder Crawler), und die Klasse auch automatisch aktualisiert, eine erschöpfende ini Datei von Browsern & Crawler regelmäßig. Es gibt auch eine drupal module, obwohl ich es nicht versucht habe.

+0

danke, werde das Problem unbedingt untersuchen – Sander