Robot.txt 阻止页面参数大于 10 的 URL

Robot.txt blocking URLs with page parameter higher than 10

我已经在检查类似的问题,但我认为这个具体案例还没有被询问和回答。

我想阻止页面参数大于 10 的所有 URL(我可能会选择小于 10 的值)。

Disallow: /events/world-wide/all-event-types/all?page=11
Allow : /events/world-wide/all-event-types/all?page=3

我有很多类似的 URLS,其中其他 "parameters" 可以更改为一些列表,这些列表几乎有 150 页。

Disallow: /events/germany/triathlon/all?page=13
Allow : /events/germany/triathlon/all?page=4

如何在不列出所有 URL 的情况下完成此操作(这基本上是不可能的)

这里再强调一下,页面参数是这里的重点

我可能会做这样的事情:

Disallow: *?page=
Allow: *?page=(1-10)

这里的正确方法是什么?

你可以这样使用:

 Allow: /*?page=1
 Allow: /*?page=2
 Allow: /*?page=3
 Allow: /*?page=4
 Allow: /*?page=5
 Allow: /*?page=6
 Allow: /*?page=7
 Allow: /*?page=8
 Allow: /*?page=9
 Allow: /*?page=10
 Disallow: /*?page=1*
 Disallow: /*?page=2*
 Disallow: /*?page=3*
 Disallow: /*?page=4*
 Disallow: /*?page=5*
 Disallow: /*?page=6*
 Disallow: /*?page=7*
 Disallow: /*?page=8*
 Disallow: /*?page=9*

所以我们允许从 1 到 10 的页面 并禁止高于 10 的页面。

您可以阅读 google docs there

感谢@Bazzilio 的精彩尝试,但我们程序员很懒,尽量避免编写代码。我现在能想到的最好的是以下(有效)

Disallow: *?page=
Allow: *?page=1$
Allow: *?page=2$
Allow: *?page=3$
Allow: *?page=4$
....

但是没有办法合并 Allow 语句吗?

robots.txt "regEx" 语法相当有限,因此不幸的是它会导致 robots.txt 文件过大。尽管其他答案解决了主要用例,但您可能还想考虑添加一些变体以解决额外参数的改组问题。

Disallow: *?page=
Disallow: *&page=
Allow: *?page=1$
Allow: *?page=2$
Allow: *?page=3$
...
Allow: *?page=1&
Allow: *?page=2&
Allow: *?page=3&
...
Allow: *&page=1&
Allow: *&page=2&
Allow: *&page=3&
....