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

39 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 屏蔽规则解析修复计划
## 问题分析
通过分析代码,我发现了无法处理`/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/`类似的规则,匹配所有包含该模式的域名,提高用户体验。