Files
dns-server/.trae/documents/屏蔽规则解析修复计划.md
2025-11-28 17:08:34 +08:00

1.6 KiB
Raw Blame History

屏蔽规则解析修复计划

问题分析

通过分析代码,我发现了无法处理/domain.com/类似规则的问题:

  1. 当前实现

    • 当处理/domain.com/这样的规则时,代码会将其编译为正则表达式domain.com
    • 然后使用MatchString(domain)来检查域名是否匹配该正则表达式
    • 但是,MatchString会检查整个字符串是否匹配,而不是检查域名是否包含该模式
    • 例如,对于域名example.com,正则表达式domain.com不会匹配,因为它只匹配字符串"domain.com"
  2. 用户期望

    • 用户期望/domain.com/匹配所有包含"domain.com"的域名,比如sub.domain.com
    • 但是当前实现中,它只会匹配精确的字符串"domain.com"

解决方案

1. 修改正则表达式规则处理

我们需要修改parseRule函数中对正则表达式规则的处理,确保/domain.com/这样的规则能正确匹配包含该模式的域名。

2. 优化匹配逻辑

我们需要确保正则表达式规则能正确匹配域名,无论是精确匹配还是包含匹配。

实现步骤

  1. 修改parseRule函数

    • 对于以/开头和结尾的规则,确保其能正确匹配包含该模式的域名
    • 或者,添加一个选项,允许用户指定匹配模式
  2. 测试修复效果

    • 确保/domain.com/规则能匹配sub.domain.com等域名
    • 确保其他规则类型仍能正常工作

预期效果

通过以上修复,屏蔽规则解析将能够正确处理/domain.com/类似的规则,匹配所有包含该模式的域名,提高用户体验。