如何禁止所有动态URL robots.txt中

Disallow: /?q=admin/
Disallow: /?q=aggregator/
Disallow: /?q=comment/reply/
Disallow: /?q=contact/
Disallow: /?q=logout/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/

我希望禁止与/ Q =

启动所有的东西
有帮助吗?

解决方案

在回答你的问题是使用

Disallow: /?q=

上的robots.txt最好(目前访问的)源我能找到是在维基百科。 (据推测是明确的来源是 http://www.robotstxt.org ,但网站已关闭的时刻。)

据维基百科页,标准定义只是两个字段;用户代理:和禁止:.该禁止:字段不允许显式通配符,但每个“不允许”路径其实是一个路径前缀;即匹配到具有指定值开始的任何路径。

在允许:字段是一个非标准扩展,以及用于在不允许显式通配符的任何支持将是一个非标准扩展。如果您使用的这些,你没有权利指望一个(合法的)网络爬虫会理解他们。

这是不是爬虫“聪明”或“哑巴”的事:它是所有关于标准的兼容性和互操作性。例如,任何网络爬虫是没有用明确的通配符“智能”的事情在“不允许:”会坏在那里这些字符的目的是要被字面解释(假设)robots.txt文件的

其他提示

正如保罗说了很多的robots.txt口译不是太亮,当你打算使用它们可能无法解释的野生卡的路径。

这是说,一些爬虫尝试跳过自己的动态网页,担心他们可能会陷入无限循环上具有不同的URL链接。我假设,因为你面对的是谁努力来访问这些动态路径的勇敢履带你问这个问题。

如果您有特定的爬虫的问题,你可以尝试以调查具体怎么是履带式的作品通过搜索其robots.txt的能力,并指定特定的robots.txt部分吧。

如果您通常只是想这样的访问禁止将动态网页,你可能要重新考虑你的robots.txt设计。

更多,往往不是动态参数处理“页”是一个特定的目录或一组特定的目录下。这就是为什么它通常是非常简单干脆禁止:/ cgi-bin目录或/应用程序,并用它做

在你的情况似乎已经映射根到处理参数的区域。您可能要逆转的robots.txt的逻辑,说是这样的:

User-agent: * 
Allow: /index.html
Allow: /offices
Allow: /static 
Disallow: /

这样,你的允许名单将通过特别添加的数据抓取工具都不能索引覆盖你不允许名单。注意不是所有的爬虫都是平等的,你可能希望调整的robots.txt在以后添加的是仍然行为不检任何履带式的特定部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top