使用 robots.txt 在单页应用程序上阻止 URI 段

Block URI segments on single-page app with robots.txt

我有一个使用 AngularJS 构建的单页应用程序,用于显示 动态 来自 的内容REST API 基于 first URI 参数。

如何阻止机器人抓取主页和登录页面以外的任何内容?

示例 url 将是:

http://example.com/CLIENT01

我搜索了示例并尝试使用以下通配符:

User-agent: *
Disallow: /*

Allow: /login

但这是无效的。我也不能在 html 中使用元标记,因为页面内容是在页眉和页脚之后动态加载的。

如有任何想法,我们将不胜感激!

这应该可以满足您的用例,但是,我不确定这是否正是您想要的。

User-agent: *
Disallow: /
Allow: /$
Allow: /login

Disallow: 行阻止抓取工具抓取任何内容。这是最激进的命令。

然后第一个 Allow: 授予抓取工具仅获取主页的能力,除此之外别无其他。由于我们使用 $ 来结束路径,因此不会抓取位于根目录之外的任何查询参数或文件。如果你想允许查询参数,你也可以添加:

Allow: /?

最后的 allow 语句将允许您的登录页面被抓取,但老实说,大多数人不允许他们的登录页面被抓取,因为它通常没有您真正要为其排名的内容。但这是完全可以接受的,因为在某些边缘情况下,如果主页上不明显,用户会寻找登录页面。