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

如何编写自定义URI正则表达式实现站点内容访问限制

自定义URI正则访问管控实现方案

规则逻辑前置说明

两类URI的判定边界清晰,配置时按照「白名单优先放行、剩余路径匹配拦截」的顺序执行即可,核心是通过负向预查排除白名单路径,避免误拦截:

  • 放行范围:/item/page/路径下携带wpv_view_count=258参数的分页地址
  • 拦截范围:/item/路径下除上述分页路径外的所有具体内容条目地址

待拦截内容URI匹配正则

根据你使用的管控组件不同,分两个常用版本:

路径匹配版本(适配Nginx、APISIX、大部分WAF/网关组件,匹配域名后、查询参数前的路径部分)

^/item/(?!page/)[a-z0-9]+-[a-z0-9-]+/?$

正则各段作用:

  • ^/item/:锁定路径起始为/item/,只对该路径下的地址做匹配
  • (?!page/):负向先行断言,直接排除/item/page/开头的分页路径,从匹配逻辑上避免误拦白名单地址
  • [a-z0-9]+-[a-z0-9-]+:匹配你给出的内容条目slug格式,即「字母+数字的内容类型ID + 连字符 + 字母/数字/连字符组成的内容名」结构,覆盖snv、sa、aud开头的所有内容条目
  • /?$:兼容路径末尾带/和不带/的两种常见地址格式

完整URI匹配版本(适配需要匹配全链路地址的管控场景,兼容内容页携带任意查询参数的情况)

^https://example\.com/item/(?!page/)[a-z0-9]+-[a-z0-9-]+/?(\?.*)?$

这个版本在路径匹配的基础上,补充了域名固定匹配,以及末尾可选的查询参数匹配,只要是/item下的非分页内容条目,不管携带什么查询参数都会被命中拦截。

白名单放行匹配正则

用来优先匹配允许访问的分页地址,路径版本如下:

^/item/page/\d+/?\?.*wpv_view_count=258.*$

该正则不限制wpv_view_count=258在查询串中的位置,不管参数顺序怎么变都能正常命中放行。

配置注意事项

  • 必须把白名单规则的执行优先级调到黑名单规则前面,命中白名单的地址直接放行,不再执行后续拦截逻辑
  • 如果后续/item路径下新增了其他不需要拦截的子路径,比如分类页/item/category/,只需要修改正则里的负向预查段为(?!page/|category/)即可追加排除
  • 正式上线前建议把你列出的2个白名单地址、3个待拦截地址全部放到正则测试工具里校验,确认命中结果符合预期再切流量。

内容的提问来源于stack exchange,提问作者Martha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:45:31