如何设置仅允许站点默认页面的robot.txt

Posted

技术标签:

【中文标题】如何设置仅允许站点默认页面的robot.txt【英文标题】:How to set up a robot.txt which only allows the default page of a site 【发布时间】:2010-09-07 18:58:06 【问题描述】:

假设我在http://example.com 上有一个站点。我真的很想让机器人看到主页,但是任何其他页面都需要阻止,因为它对蜘蛛毫无意义。换句话说

http://example.com & http://example.com/ 应该是允许的,但是 http://example.com/anything 和 http://example.com/someendpoint.aspx 应该被屏蔽。

如果我可以允许某些查询字符串传递到主页,那就太好了: http://example.com?okparam=true

但不是 http://example.com?anythingbutokparam=true

【问题讨论】:

【参考方案1】:

基本 robots.txt:

Disallow: /subdir/

我不认为你可以创建一个表达“除了根之外的所有东西”的表达式,你必须填写所有子目录。

robots.txt 中的查询字符串限制也是不可能的。您必须在后台代码(处理部分)中执行此操作,或者可能使用服务器重写规则。

【讨论】:

【参考方案2】:
Disallow: *
Allow: index.ext

如果我没记错的话,第二个子句应该覆盖第一个子句。

【讨论】:

【参考方案3】:

Google's Webmaster Tools 报告不允许总是优先于允许,因此在 robots.txt 文件中没有简单的方法来执行此操作。

您可以通过在除主页之外的每个页面的 html 中放置一个 noindex,nofollow META 标记来完成此操作。

【讨论】:

【参考方案4】:

据我所知,并不是所有的爬虫都支持允许标签。一种可能的解决方案可能是将除主页之外的所有内容放入另一个文件夹并禁止该文件夹。

【讨论】:

【参考方案5】:

所以经过一些研究,我发现了以下内容 - 主要搜索提供商都可以接受的解决方案:google、yahoo 和 msn(我可以在这里找到验证器):

User-Agent: *
Disallow: /*
Allow: /?okparam=
Allow: /$

诀窍是使用 $ 标记 URL 的结尾。

【讨论】:

信息支持$作为结束分界can be found here。

以上是关于如何设置仅允许站点默认页面的robot.txt的主要内容,如果未能解决你的问题,请参考以下文章

tomcat设置默认页面问题

Robot.txt 无索引

OSX Apache Virtualhost 仅返回默认页面

本地开发站点总是转到默认的 WampServer 页面而不是我的开发站点

Sharepoint:如何更改新创建的子网站的默认页面布局?

https设置后Nginx重定向到默认欢迎页面