2009-09-29 14 views
7

comment interdire tous les urls dynamiques robots.txtcomment désavouer toutes les urls dynamiques robots.txt

Disallow: /?q=admin/ 
Disallow: /?q=aggregator/ 
Disallow: /?q=comment/reply/ 
Disallow: /?q=contact/ 
Disallow: /?q=logout/ 
Disallow: /?q=node/add/ 
Disallow: /?q=search/ 
Disallow: /?q=user/password/ 
Disallow: /?q=user/register/ 
Disallow: /?q=user/login/ 

je veux désavouer toutes les choses qui commencent par /? Q =

+0

D'après [this] (http://smackdown.blogsblogsblogs.com/2008/05/23/googlebot-creates-pages-instead-of-simply-indexing-them-new-form-crawling-algo-goes -bad /), interdire les pages de recherche peut être une très bonne idée. Cette question est donc très pertinente et ne devrait pas être fermée. –

Répondre

11

La réponse à votre question est d'utiliser

Disallow: /?q= 

La meilleure source sur robots.txt (actuellement accessible) que je pourrais trouver est sur Wikipedia. (La source soi-disant définitive est http://www.robotstxt.org, mais le site est en panne pour le moment.)

Selon la page Wikipedia, la norme ne définit que deux champs; UserAgent: et Disallow :. Le champ Disallow: n'autorise pas les caractères génériques explicites, mais chaque chemin "non autorisé" est en fait un préfixe de chemin; c'est-à-dire correspondant à tout chemin commençant par la valeur spécifiée.

Le champ Autoriser: est une extension non standard et toute prise en charge des caractères génériques explicites dans Disallow est une extension non standard. Si vous les utilisez, vous n'avez pas le droit de penser qu'un robot d'exploration Web (légitime) les comprendra.

Les robots d'exploration ne sont pas "intelligents" ou "stupides": tout dépend de la conformité aux normes et de l'interopérabilité. Par exemple, tout robot d'indexation Web qui fait des choses «intelligentes» avec des caractères génériques explicites dans un «Disallow:» serait mauvais pour les fichiers robots.txt (hypothétiques) où ces caractères ont été conçus pour être interprétés littéralement.

+0

@stephen merci pour la réponse détaillée – pmarreddy

+0

Un résultat élevé dans google pour comprendre robotos.txt suggérait que les expressions régulières fonctionnaient - je ne les ai pas trouvées pour pouvoir utiliser des expressions régulières. – landed

2

Comme Paul a dit un Beaucoup d'interprètes robots.txt ne sont pas trop intelligents et pourraient ne pas interpréter les jokers dans le chemin que vous avez l'intention de les utiliser. Cela dit, certains robots tentent d'ignorer eux-mêmes les pages dynamiques, craignant d'être pris dans des boucles infinies sur des liens avec des URLs variables. Je suppose que vous posez cette question parce que vous faites face à un crawler courageux qui essaye dur d'accéder à ces chemins dynamiques.

Si vous rencontrez des problèmes avec des robots d'exploration spécifiques, vous pouvez essayer d'étudier spécifiquement le fonctionnement de ce robot en recherchant sa capacité robots.txt et en spécifiant une section spécifique robots.txt pour celui-ci.

Si vous souhaitez généralement interdire un tel accès à vos pages dynamiques, vous pouvez vouloir repenser votre conception de robots.txt.

Plus souvent qu'autrement, les «pages» de gestion de paramètres dynamiques se trouvent dans un répertoire spécifique ou dans un ensemble spécifique de répertoires. C'est pourquoi il est normalement très simple de simplement Disallow:/cgi-bin ou/app et être fait avec.

Dans votre cas, vous semblez avoir mappé la racine à une zone qui gère les paramètres. Vous pouvez inverser la logique de robots.txt et dire quelque chose comme:

User-agent: * 
Allow: /index.html 
Allow: /offices 
Allow: /static 
Disallow:/

De cette façon, votre liste Autoriser priorité sur votre liste de Disallow en ajoutant précisément ce que crawlers devrait indexer. Notez que tous les moteurs de balayage ne sont pas créés égaux et que vous souhaiterez peut-être affiner ce fichier robots.txt à un moment ultérieur en ajoutant une section spécifique pour tout moteur d'exploration qui se comporte mal.

+1

@Grookoo: "Autoriser:" est non standard.Un robot qui l'ignore ne se conduit pas mal; il est simplement conforme à la spécification robots.txt. –