我已经写了一些规则来阻止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的文件