如何设置仅允许网站默认页面的robot.txt

时间:2020-03-05 18:47:31  来源:igfitidea点击:

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

应该允许使用http://example.com和http://example.com/,但是
http://example.com/anything和http://example.com/someendpoint.aspx应该被阻止。

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

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

解决方案

回答

基本robots.txt:

Disallow: /subdir/

我不认为我们可以创建一个表达式,说"除根以外的所有内容",而我们必须填写所有子目录。

也无法通过robots.txt来查询字符串限制。我们必须在后台代码(处理部分)中执行此操作,或者使用服务器重写规则进行操作。

回答

Disallow: *
Allow: index.ext

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

回答

Google的网站站长工具报告指出,禁止总是优先于允许,因此在" robots.txt"文件中没有简单的方法可以做到这一点。

我们可以通过在HTML除首页之外的每个页面上放置一个noindex,nofollow`META标签来实现此目的。

回答

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

回答

因此,经过一番研究,这是我发现主要搜索提供商可以接受的解决方案:google,yahoo和msn(我可以在此处找到验证器):

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

诀窍是使用$标记URL的结尾。