我想禁止使用带有url参数和数字顺序的机器人txt的网址。 我有一个GET参数的网站,如:
example.com/show?id_item=999
到
layoutSubviews
禁止从id_item 1到500。 有可能在robots.txt中不允许写入“id_item”而没有写入吨(在这种情况下为500)的行吗?
答案 0 :(得分:2)
取决于范围。你的例子很容易(1到999,不允许1到500):
User-agent: *
Disallow: /show?id_item=1
Disallow: /show?id_item=2
Disallow: /show?id_item=3
Disallow: /show?id_item=4
Disallow: /show?id_item=500
这不允许任何 id_item 以开始" 1"," 2"," 3" ," 4"或" 500"。
因此不允许这样的网址:
https://example.com/show?id_item=1
https://example.com/show?id_item=19
https://example.com/show?id_item=150
https://example.com/show?id_item=1350
https://example.com/show?id_item=1foo
如果您希望ID高于999,那么它就不再那样了(因为像#" 1001"这样的ID也是不允许的)。您可能必须使用Allow
然后(但此功能不是原始robots.txt规范的一部分,因此并非所有消费者都支持),并且列表会变得更长。
根据范围,$
可能有用。它表示URL的结尾(但这也是一个不属于原始robots.txt规范的功能,因此并非所有robots.txt解析器都支持它)。例如,以下行只会阻止ID" 500":
Disallow: /show?id_item=500$
答案 1 :(得分:1)
不,没有办法用robots.txt做这个,除了有500行,每个数字一行。 (不推荐!)最接近的是通配符扩展" *",但这将匹配任何长度的字符串,由任何字符组成。没有办法匹配特定的数字模式,这是您需要匹配数字范围。
如果您的目标是将这些网页排除在搜索引擎之外,那么最好的方法是添加代码,以便在ID位于目标范围内时使用robots meta tags or x-robots-tag headers选择性地阻止这些网页。
如果你的目标是阻止网页被抓取(例如减少服务器负载)那么你就不走运了。您必须选择阻止所有这些(使用Disallow: /show?id_item=
)或不阻止它们。