我已经编写了一些规则来阻止Robot.txt中的少量URL现在我想改变这些规则。是否有任何工具可用于验证robot.txt
?
我写过这条规则:
Disallow: /classifieds/search*/
阻止这些网址:
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
答案 0 :(得分:1)
您的规则Disallow: /classifieds/search*/
无法执行您希望的操作。
首先,请注意*
字符在original robots.txt specification中没有特殊含义。但是一些解析器like Google’s将它用作模式匹配的通配符。假设您仅对这些解析器有此规则:
从您的示例中,此规则只会阻止http://example.com/classifieds/search/
。其他三个网址在/
之后没有search
。
Disallow: /classifieds/search
→屏蔽路径以/classifieds/search
Disallow: /classifieds/search/
→屏蔽路径以/classifieds/search/
Disallow: /classifieds/search*/
→对于遵循原始规范的解析器:阻止路径以/classifieds/search*/
开头的所有网址
→对于使用*
作为通配符的解析器:阻止路径以/classifieds/search
开头的所有网址,后跟任何内容,后跟/
要阻止四个示例网址,只需使用以下内容:
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
答案 1 :(得分:0)
使用robots.txt的问题在于它本身无法阻止任何内容,而是要求webcrawler不要抓取您网站的某些区域。
至于验证,如果语法有效,它应该可以工作,并且您可以监视服务器日志,以查看某些已知的兼容机器人在阅读robots.txt后是否避免这些目录。这当然取决于访问您网站的机器人是否符合标准。
可以使用许多在线验证器,例如http://www.frobee.com/robots-txt-check
当谈到这三条规则时:
> **Disallow: /classifieds/search*/**
禁止名称以搜索开头的目录内的任何内容,但不包括目录本身
> **Disallow: /classifieds/search/**
禁止名为search
> **Disallow: /classifieds/search**
禁止以搜索
答案 2 :(得分:0)
我自己没有测试过,但你试过robots.txt checker吗? 至于三条规则之间的区别,我说
Disallow: /classifieds/search*/
不允许所有子目录/分类/以&#34开头;搜索" Disallow: /classifieds/search/
仅禁止/ classifieds / search /目录Disallow: /classifieds/search
禁止访问名为/ classifieds / search