robots.txt的正则表达式 - 禁止目录中的某些内容,但不禁止目录本身

时间:2010-09-20 01:02:21

标签: regex wordpress robots.txt

我正在使用带有自定义固定链接的wordpress,我想禁止我的帖子,但我的类别页面可以被蜘蛛访问。以下是URL的示例:

类别页面 somesite dot com / 2010 / category-name /

发布: somesite dot com / 2010 / category-name / product-name /

所以,我很好奇是否有某种类型的正则表达式解决方案让页面保持在/ category-name / allowed,同时禁止任何更深层次的内容(第二个示例。)

有什么想法吗?谢谢! :)

2 个答案:

答案 0 :(得分:0)

以下是否可以解决问题?

User-agent: *
Disallow: /2010/category-name/*/

<击>

您可能需要明确允许/2010/category-name下的某些文件夹:

User-agent: *
Disallow: /2010/category-name/
Allow: /2010/category-name/product-name-1/
Allow: /2010/category-name/product-name-2/

但根据this articleAllow字段不在标准范围内,因此某些抓取工具可能不支持它。

修改 我刚刚找到了每个页面中使用的另一个资源。 This page解释得很好:

  

基本思想是,如果你包括   标签如:

<META NAME="ROBOTS" CONTENT="NOINDEX">
     

在HTML文档中,即该文档   不会被编入索引。

     

如果你这样做:

<META NAME="ROBOTS" CONTENT="NOFOLLOW">
     

该文件中的链接不会   由机器人解析。

答案 1 :(得分:0)

可能会有所帮助的一些信息。

robots.txt协议没有官方标准组织或RFC。它是由机器人邮件列表成员(robots-request@nexor.co.uk)于1994年6月以协商一致方式创建的。指定不应访问的部分的信息在网站顶级目录中名为robots.txt的文件中指定。 robots.txt模式通过简单的子字符串比较进行匹配,因此应注意确保匹配目录的模式附加了最后的“/”字符,否则名称以该子字符串开头的所有文件都将匹配,而不是仅仅匹配目的地。

没有100%肯定的方式可以排除您的网页,当然除了根本不发布这些网页。

请参阅: http://www.robotstxt.org/robotstxt.html

共识中没有允许。此外,正则表达式选项也不在共识中。

从机器人共识:

目前这有点尴尬,因为没有“允许”字段。简单的方法是将所有不允许的文件放入一个单独的目录中,比如“stuff”,并将一个文件保留在该目录上方的级别中:

User-agent: *
Disallow: /~joe/stuff/

或者,您可以明确禁止所有不允许的页面:

User-agent: *
Disallow: /~joe/junk.html
Disallow: /~joe/foo.html
Disallow: /~joe/bar.html

可能的解决方案

使用.htaccess设置为禁止来自特定文件夹的搜索机器人,同时阻止坏机器人。

请参阅:http://www.askapache.com/htaccess/setenvif.html