以下 robots.txt 语法能否正确阻止网站上所有以“_.php”结尾的页面?我不想意外阻止其他页面。
User-Agent: *
Disallow: /*_.php
另外,我可以在同一个 robots.txt 文件中同时使用“Allow: /”和“Disallow:”命令吗?谢谢!
答案1
如果您希望排除某些文件(但不排除其他文件),则必须将它们分组到目录中,例如:
用户代理: * 不允许:/cgi-bin/
每robotstxt.org,“不允许”字段不支持星号:
还请注意,User-agent 或 Disallow 行均不支持通配符和正则表达式。User-agent 字段中的“*”是一个特殊值,表示“任何机器人”。具体来说,您不能有类似“User-agent:机器人"、"禁止:/tmp/*" 或 "禁止:*.gif"。
此外,没有“允许”字段。默认情况下,所有内容都是允许的,特定项目则例外,不允许。
参考:
答案2
Miles 的回答涵盖了标准。最著名的爬虫 Googlebot 扩展了标准,并且确实理解了 Allow 以及(有限的)模式匹配。
我发现 Google 的网站管理员工具非常有用。他们有一整套专门用于帮助您建立正确的 robots.txt。不过,在运行“robots.txt 测试”之前,您确实需要上传页面(或至少是存根测试页面)。