阻止robots.txt中包含数字的网址

时间:2013-06-10 21:44:52

标签: url robots.txt

我的网站允许搜索引擎以2种格式索引同一页面,如:

  • www.example.com/page-1271.html‬
  • www.example.com/page-1271-page-title.html

我的所有网站都是这样的。那么,我如何阻止robots.txt文件中的第一种格式?我的意思是有这样的代码:

Disallow: /page-(numbers).html

2 个答案:

答案 0 :(得分:0)

robots.txt中没有这样的正则表达式选项。你有几个选择:

1)将机器人禁止信息放入html文件的head元素中。 2)编写一个脚本,将每个可阻止的html文件作为单独的行添加到robots.txt中 3)将内容页面放在一个单独的目录中,并禁止访问该目录。

某些搜索引擎(例如Google),但不是所有搜索引擎都尊重模式匹配: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=156449&from=35237&rd=1

User-agent: *
Disallow: /page-*.html
Allow: /page-*-page-title.html

此处允许覆盖Disallow,所有搜索引擎也不支持此功能。最简单的方法是重新构建文件(或进行URL重写),或者将机器人信息放入html文件中。

答案 1 :(得分:0)

原始robots.txt规范尚未定义任何通配符。 (但是,像谷歌这样的一些解析器无论如何都增加了通配符支持。)

如果你担心搜索引擎只会索引你的两个变体中的一个,那么robots.txt还有其他选择:

您可以将example.com/page-1271.html‬重定向(使用301)到example.com/page-1271-page-title.html。这个解决方案是最好的,因为现在每个人(用户,机器人)都将使用相同的URL。

或者您可以使用canonical link relation。在example.com/page-1271.html‬(或两种变体)上,您可以向link添加head元素:

<link href="example.com/page-1271-page-title.html" rel="canonical" />

这告诉搜索引擎机器人等使用canonical网址而不是当前网址。