web-dev-qa-db-fra.com

robots.txt pour interdire toutes les pages sauf une? Remplacent-ils et se mettent-ils en cascade?

Je veux qu'une page de mon site soit explorée et aucune autre.

De plus, si c'est différent de la réponse ci-dessus, je voudrais également connaître la syntaxe pour tout interdire sauf la racine (index) du site Web.

# robots.txt for http://example.com/

User-agent: *
Disallow: /style-guide
Disallow: /splash
Disallow: /etc
Disallow: /etc
Disallow: /etc
Disallow: /etc
Disallow: /etc

Ou puis-je faire comme ça?

# robots.txt for http://example.com/

User-agent: *
Disallow: /
Allow: /under-construction

Je dois également mentionner qu'il s'agit d'une installation WordPress, donc "under-construction", par exemple, est défini sur la première page. Dans ce cas, il agit comme l'index.

Je pense que ce dont j'ai besoin, c'est d'avoir http://example.com craweld, mais pas d'autres pages.

# robots.txt for http://example.com/

User-agent: *
Disallow: /*

Cela signifierait-il interdire quoi que ce soit après la racine?

35
nouveau

La façon la plus simple d'autoriser l'accès à une seule page serait:

User-agent: *
Allow: /under-construction
Disallow: /

La spécification originale robots.txt indique que les robots doivent lire robots.txt de haut en bas et utiliser la première règle de correspondance. Si vous placez le Disallow en premier, alors de nombreux bots le verront comme disant qu'ils ne peuvent rien explorer. En mettant d'abord le Allow, ceux qui appliquent les règles de haut en bas verront qu'ils peuvent accéder à cette page.

Les règles d'expression sont simples: l'expression Disallow: / dit "interdire tout ce qui commence par une barre oblique". Cela signifie donc tout sur le site.

Votre Disallow: /* signifie la même chose pour Googlebot et Bingbot, mais les robots qui ne prennent pas en charge les caractères génériques pourraient voir le /* et pensez que vous vouliez dire un littéral *. Ils pouvaient donc supposer qu'il était acceptable d'explorer /*foo/bar.html.

Si vous souhaitez simplement explorer http://example.com, mais rien d'autre, vous pouvez essayer:

Allow: /$
Disallow: /

Le $ signifie "fin de chaîne", comme dans les expressions régulières. Encore une fois, cela fonctionnera pour Google et Bing, mais ne fonctionnera pas pour les autres robots s'ils ne prennent pas en charge les caractères génériques.

68
Jim Mischel

Si vous vous connectez aux outils Google pour les webmasters, dans le panneau de gauche, accédez à l'exploration, puis accédez à Récupérer en tant que Google. Ici, vous pouvez tester comment Google explorera chaque page.

Dans le cas de tout bloquer sauf la page d'accueil:

User-agent: *
Allow: /$
Disallow: /

marchera.

8
Kohjah Breese

http://en.wikipedia.org/wiki/Robots.txt#Allow_directive

L'ordre n'est important que pour les robots qui respectent la norme; dans le cas des robots Google ou Bing, la commande n'est pas importante.

2
akx

vous pouvez utiliser ci-dessous les deux fonctionneront

User-agent: *
Allow: /$
Disallow: /

ou

User-agent: *
Allow: /index.php
Disallow: /

l'autorisation doit être antérieure à l'interdiction, car le fichier est lu de haut en bas

Interdire:/dit "interdire tout ce qui commence par une barre oblique". Cela signifie donc tout sur le site.

Le $ signifie "fin de chaîne", comme dans les expressions régulières. donc le résultat de Allow:/$ est votre page d'accueil/index

2
Aominé