如何验证Robot.txt规则



我已经写了一些规则来阻止Robot.txt中的一些URL。现在我想改变这些规则。是否有任何工具用于验证robot.txt

我写了这个规则:

Disallow: /classifieds/search*/    

要阻止这些URL:

http://example.com/classifieds/search?filter_states=4&filter_frieght=8&filter_driver=2
http://example.com/classifieds/search?keywords=Covenant+Transport&type=Carrier
http://example.com/classifieds/search/
http://example.com/classifieds/search

我也想知道这些规则之间的区别是什么

Disallow: /classifieds/search*/
Disallow: /classifieds/search/
Disallow: /classifieds/search

您的规则Disallow: /classifieds/search*/不会执行您希望它执行的操作。

首先,请注意,*字符在原始robots.txt规范中没有特殊含义。但一些解析器,比如谷歌的,将其用作模式匹配的通配符。假设你有这个规则只适用于那些解析器:

根据您的示例,此规则只会阻止http://example.com/classifieds/search/。其他三个URL在search之后没有/


  • Disallow: /classifieds/search
    →阻止路径以/classifieds/search 开头的所有URL

  • Disallow: /classifieds/search/
    →阻止路径以/classifieds/search/ 开头的所有URL

  • Disallow: /classifieds/search*/
    →对于遵循原始规范的解析器:阻止路径以/classifieds/search*/
    开头的所有URL→对于使用*作为通配符的解析器:阻止路径以/classifieds/search开头、后跟任意内容、后跟/ 的所有URL


要阻止四个示例URL,只需使用以下内容:

User-agent: *
Disallow: /classifieds/search

这将阻止,例如:

  • http://example.com/classifieds/search?filter=4
  • http://example.com/classifieds/search/
  • http://example.com/classifieds/search/foo
  • http://example.com/classifieds/search
  • http://example.com/classifieds/search.html
  • http://example.com/classifieds/searching

使用robots.txt的问题是,它本身无法阻止任何内容,而是要求网络爬虫不要对网站的某些区域进行爬网。

至于验证,只要语法有效,它就应该有效,你可以监控服务器日志,看看一些已知的兼容机器人在阅读robots.txt后是否会避开这些目录。当然,这取决于访问你的网站的机器人是否符合标准。

有很多在线验证器可以使用,例如http://www.frobee.com/robots-txt-check

当谈到这三条规则时:

> **Disallow: /classifieds/search*/**禁止名称以搜索开头的目录中的任何内容,但不允许目录本身

> **Disallow: /classifieds/search/**禁止名为search 的目录中的任何内容

> **Disallow: /classifieds/search**禁止任何以搜索开头的目录

我自己没有测试过,但你试过robots.txt检查器吗?至于这三条规则之间的区别,我认为

  • Disallow: /classifieds/search*/不允许/classifieds/的所有子目录以"search"开头
  • Disallow: /classifieds/search/仅禁止/classifieds/search/目录
  • Disallow: /classifieds/search不允许访问名为/classifieds/search的文件

最新更新