2009-08-19 4 views
0

nous avons un grand site communautaire construit dans Drupal, où le site a une agecheck obligatoire avant de pouvoir accéder au contenu du siterobot est bloqué sur la page agecheck obligatoire dans Drupal

il vérifie un cookie pour être présent, sinon, vous êtes redirigé vers la page agecheck. Maintenant, nous pensons que les crawlers sont bloqués sur cette partie, ils sont redirigés vers l'agecheck et ne peuvent jamais explorer le site web complet.

Est-ce que quelqu'un a déjà eu ça? quelle serait la meilleure façon de faire face à quelque chose comme ça?

Sander

EDIT

je suis désolé que parler maintenant, l'un des problèmes avec robots d'exploration est aussi que lorsque quelqu'un dans les postes de la communauté quelque chose à son mur facebook, facebook explore la page pour récupérer les images et la description (qui sont spécifiées dans les balises meta) mais Facebook est également redirigé vers la page agecheck. un useragentcheck fonctionnerait-il si j'ajoute le crawler de facebook? si oui: quelqu'un connaîtrait-il alors le nom exact des robots d'exploration?

La solution ci-dessous est celle que nous avons également eu une croix sur le net. Si l'ajout du robot d'exploration de Facebook à cette liste fonctionne alors cela résoudrait tous les problèmes que nous avons avec cette page d'agecheck.

+1

"le site a un contrôle obligatoire" - probablement pour une raison. Quel type d'information voulez-vous afficher sur les moteurs de recherche? Une version "filtrée" de toutes les pages? Seulement un sous-ensemble de pages, peut-être même seulement un fichier d'index? – VolkerK

Répondre

2

Vous pouvez vérifier l'user-agent, et s'il s'agit d'un crawler, vous ne vérifiez pas si le navigateur/l'utilisateur a le cookie requis.

Here est un échantillon:

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

ajouterait l'aide de crawler facebook avec le problème de facebook? (voir mon édition) – Sander

+0

Oui, cela résoudra également votre problème avec le lien facebook. Pour savoir quel utilisateur utilise facebook-agent, vous pouvez enregistrer toutes les demandes qui échouent à cookie-test dans une base de données ou un fichier, puis essayez d'afficher un lien sur facebook. Vous trouverez ensuite la chaîne user-agent dans votre base de données. – Espo

0

Gary Keith a une classe php que vous pouvez utiliser pour vérifier tous les attributs d'un visiteur (par exemple, le navigateur ou sur chenilles) et la classe aussi met automatiquement à jour une liste exhaustive ini fichier des navigateurs & crawlers sur une base régulière. Il y a aussi un drupal module, même si je ne l'ai pas essayé.

+0

merci, va certainement se pencher sur cette question – Sander

Questions connexes