2009-09-29 21 views
7

cómo no permitir todas las direcciones URL dinámicas en robots.txtcómo no permitir todas las direcciones URL dinámicas 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/ 

quiero rechazar todas las cosas que comienzan con /? Q =

+0

Según [esto] (http://smackdown.blogsblogsblogs.com/2008/05/23/googlebot-creates-pages-instead-of-simply-indexing-them-new-form-crawling-algo-goes -bad /), rechazar las páginas de búsqueda puede ser una muy buena idea. Entonces esta pregunta es muy relevante y no debería ser cerrada. –

Respuesta

11

La respuesta a su pregunta es utilizar

Disallow: /?q= 

La mejor (actualmente accesible) fuente de robots.txt que pude encontrar es el Wikipedia. (La fuente supuestamente definitiva es http://www.robotstxt.org, pero el sitio está caído en este momento).

De acuerdo con la página de Wikipedia, el estándar define solo dos campos; UserAgent: y no permitido :. El campo Disallow: no permite caracteres explícitos, pero cada ruta "no permitida" es en realidad un prefijo de ruta; es decir, hacer coincidir cualquier ruta que comience con el valor especificado.

El campo Permitir: es una extensión no estándar, y cualquier soporte para comodines explícitos en No permitir sería una extensión no estándar. Si los usa, no tiene derecho a esperar que un rastreador web (legítimo) los comprenda.

No se trata de que los rastreadores sean "inteligentes" o "tontos": se trata de cumplir con los estándares e interoperabilidad. Por ejemplo, cualquier rastreador web que hiciera cosas "inteligentes" con caracteres comodín explícitos en un "Disallow:" sería malo para los archivos robots.txt (hipotéticos) en los que dichos caracteres debían interpretarse literalmente.

+0

@stephen gracias por la respuesta detallada – pmarreddy

+0

Un alto resultado en google para entender robotos.txt sugería que las expresiones regulares funcionaban, no las encontré para poder usar expresiones regulares. – landed

2

Como dijo Pablo una Muchos de los intérpretes de robots.txt no son demasiado brillantes y es posible que no interpreten comodines en la ruta, ya que tiene la intención de usarlos.

Dicho esto, algunos rastreadores intentan omitir las páginas dinámicas por su cuenta, preocupándose de que puedan quedar atrapados en infinitos bucles en enlaces con diferentes URL. Asumo que estás haciendo esta pregunta porque te enfrentas a un rastreador valiente que está tratando de acceder a esas rutas dinámicas.

Si tiene problemas con rastreadores específicos, puede intentar investigar específicamente cómo funciona el rastreador buscando en la capacidad del archivo robots.txt y especificando una sección de robots.txt específica para él.

Si por lo general solo desea deshabilitar dicho acceso a sus páginas dinámicas, es posible que desee replantear su diseño de robots.txt.

La mayoría de las veces, las "páginas" de tratamiento de parámetros dinámicos se encuentran bajo un directorio específico o un conjunto específico de directorios. Es por eso que normalmente es muy simple simplemente No permitir:/cgi-bin o/app y listo.

En su caso, parece que ha asignado la raíz a un área que maneja los parámetros. Es posible que desee invertir la lógica de robots.txt y decir algo como:

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

De esta manera su lista Permitir anulará su lista Inhabilitar añadiendo específicamente qué rastreadores debe indexar. Tenga en cuenta que no todos los rastreadores se crean de la misma manera y es posible que desee refinar el archivo robots.txt posteriormente para agregar una sección específica para cualquier rastreador que todavía se comporte mal.

+1

@Grookoo: "Permitir:" no es estándar.Un rastreador que lo ignora no se está portando mal; simplemente se ajusta a la especificación robots.txt. –

Cuestiones relacionadas