22

假设我在http://example.com上有一个网站。我真的很想让机器人看到主页,但是任何其他页面都需要阻止,因为它对蜘蛛毫无意义。换句话说

http://example.comhttp://example.com/应该被允许,但 http://example.com/anythinghttp://example.com/someendpoint.aspx应该被阻止。

此外,如果我可以允许某些查询字符串传递到主页,那就太好了: http ://example.com?okparam=true

但不是 http://example.com?anythingbutokparam=true

4

5 回答 5

52

So after some research, here is what I found - a solution acceptable by the major search providers: google , yahoo & msn (I could on find a validator here) :

User-Agent: *
Disallow: /*
Allow: /?okparam=
Allow: /$

The trick is using the $ to mark the end of URL.

于 2008-09-04T20:34:05.150 回答
1

谷歌的网站管理员工具报告不允许总是优先于允许,所以在robots.txt文件中没有简单的方法来做到这一点。

您可以通过noindex,nofollow META在除主页之外的每个页面的 HTML 中放置一个标签来完成此操作。

于 2008-09-04T14:12:47.920 回答
0

基本机器人.txt:

Disallow: /subdir/

我不认为您可以创建一个表达“除根之外的所有内容”的表达式,您必须填写所有子目录。

robots.txt 中的查询字符串限制也是不可能的。您必须在后台代码(处理部分)中执行此操作,或者可能使用服务器重写规则。

于 2008-09-04T09:58:27.487 回答
0
Disallow: *
Allow: index.ext

如果我没记错的话,第二个子句应该覆盖第一个子句。

于 2008-09-04T10:27:43.593 回答
0

据我所知,并不是所有的爬虫都支持允许标签。一种可能的解决方案可能是将除主页之外的所有内容放入另一个文件夹并禁止该文件夹。

于 2008-09-04T14:18:33.400 回答