You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写带特定规则的robots.txt以实现URL的精准禁爬与条件放行?

如何编写带特定规则的robots.txt以实现URL的精准禁爬与条件放行?

嗨,我来帮你搞定这个robots.txt的规则配置问题!你想要的效果是禁止所有带?page=*参数的URL被抓取,但只要路径里包含article的这类URL就例外放行,这个需求完全可以通过合理设置Allow和Disallow规则实现,核心是利用robots.txt的「规则匹配优先级」——更具体的规则会被优先执行,所以我们只需要把放行的例外规则放在前面,再写通用的禁止规则就行。

正确的robots.txt配置代码

User-Agent: *
# 放行根目录下/article/路径带page参数的URL(比如http://example.com/article/?page=2)
Allow: /article/?page=*
# 放行任意子目录下/article/路径带page参数的URL(比如http://example.com/xxx/article/?page=2)
Allow: */article/?page=*
# 禁止其他所有带page参数的URL(比如http://example.com/blog/?page=2)
Disallow: /*?page=*

规则说明

  • Allow: /article/?page=*:专门匹配根目录下直接的/article/路径后带page参数的URL,对应你提到的第一个放行案例。
  • Allow: */article/?page=*:匹配任意层级子目录下的/article/路径带page参数的URL,覆盖你说的第二个放行场景。
  • Disallow: /*?page=*:匹配所有路径(包括根目录和任意子目录)下带page参数的URL,但因为前面的两条Allow规则更具体,所以符合放行条件的URL会被优先放行,剩下的才会被禁止抓取。

匹配验证

  • 对于你要禁止的http://example.com/*/?page=2(比如http://example.com/blog/?page=2):因为路径里没有article,会触发最后的Disallow规则,被Google忽略。
  • 对于你要放行的http://example.com/article/?page=2和http://example.com/*/article/?page=2:会分别匹配前面的两条Allow规则,顺利被允许抓取。

备注:内容来源于stack exchange,提问作者ishiodori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:18:01