diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go
index fdbe861..f6af197 100644
--- a/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go
+++ b/pkg/serverconfigs/firewallconfigs/http_firewall_rule_operator.go
@@ -4,26 +4,28 @@ type HTTPFirewallRuleOperator = string
 type HTTPFirewallRuleCaseInsensitive = string
 
 const (
-	HTTPFirewallRuleOperatorGt           HTTPFirewallRuleOperator = "gt"
-	HTTPFirewallRuleOperatorGte          HTTPFirewallRuleOperator = "gte"
-	HTTPFirewallRuleOperatorLt           HTTPFirewallRuleOperator = "lt"
-	HTTPFirewallRuleOperatorLte          HTTPFirewallRuleOperator = "lte"
-	HTTPFirewallRuleOperatorEq           HTTPFirewallRuleOperator = "eq"
-	HTTPFirewallRuleOperatorNeq          HTTPFirewallRuleOperator = "neq"
-	HTTPFirewallRuleOperatorEqString     HTTPFirewallRuleOperator = "eq string"
-	HTTPFirewallRuleOperatorNeqString    HTTPFirewallRuleOperator = "neq string"
-	HTTPFirewallRuleOperatorMatch        HTTPFirewallRuleOperator = "match"
-	HTTPFirewallRuleOperatorNotMatch     HTTPFirewallRuleOperator = "not match"
-	HTTPFirewallRuleOperatorContains     HTTPFirewallRuleOperator = "contains"
-	HTTPFirewallRuleOperatorNotContains  HTTPFirewallRuleOperator = "not contains"
-	HTTPFirewallRuleOperatorPrefix       HTTPFirewallRuleOperator = "prefix"
-	HTTPFirewallRuleOperatorSuffix       HTTPFirewallRuleOperator = "suffix"
-	HTTPFirewallRuleOperatorContainsAny  HTTPFirewallRuleOperator = "contains any"
-	HTTPFirewallRuleOperatorContainsAll  HTTPFirewallRuleOperator = "contains all"
-	HTTPFirewallRuleOperatorHasKey       HTTPFirewallRuleOperator = "has key" // has key in slice or map
-	HTTPFirewallRuleOperatorVersionGt    HTTPFirewallRuleOperator = "version gt"
-	HTTPFirewallRuleOperatorVersionLt    HTTPFirewallRuleOperator = "version lt"
-	HTTPFirewallRuleOperatorVersionRange HTTPFirewallRuleOperator = "version range"
+	HTTPFirewallRuleOperatorGt               HTTPFirewallRuleOperator = "gt"
+	HTTPFirewallRuleOperatorGte              HTTPFirewallRuleOperator = "gte"
+	HTTPFirewallRuleOperatorLt               HTTPFirewallRuleOperator = "lt"
+	HTTPFirewallRuleOperatorLte              HTTPFirewallRuleOperator = "lte"
+	HTTPFirewallRuleOperatorEq               HTTPFirewallRuleOperator = "eq"
+	HTTPFirewallRuleOperatorNeq              HTTPFirewallRuleOperator = "neq"
+	HTTPFirewallRuleOperatorEqString         HTTPFirewallRuleOperator = "eq string"
+	HTTPFirewallRuleOperatorNeqString        HTTPFirewallRuleOperator = "neq string"
+	HTTPFirewallRuleOperatorMatch            HTTPFirewallRuleOperator = "match"
+	HTTPFirewallRuleOperatorNotMatch         HTTPFirewallRuleOperator = "not match"
+	HTTPFirewallRuleOperatorWildcardMatch    HTTPFirewallRuleOperator = "wildcard match"
+	HTTPFirewallRuleOperatorWildcardNotMatch HTTPFirewallRuleOperator = "wildcard not match"
+	HTTPFirewallRuleOperatorContains         HTTPFirewallRuleOperator = "contains"
+	HTTPFirewallRuleOperatorNotContains      HTTPFirewallRuleOperator = "not contains"
+	HTTPFirewallRuleOperatorPrefix           HTTPFirewallRuleOperator = "prefix"
+	HTTPFirewallRuleOperatorSuffix           HTTPFirewallRuleOperator = "suffix"
+	HTTPFirewallRuleOperatorContainsAny      HTTPFirewallRuleOperator = "contains any"
+	HTTPFirewallRuleOperatorContainsAll      HTTPFirewallRuleOperator = "contains all"
+	HTTPFirewallRuleOperatorHasKey           HTTPFirewallRuleOperator = "has key" // has key in slice or map
+	HTTPFirewallRuleOperatorVersionGt        HTTPFirewallRuleOperator = "version gt"
+	HTTPFirewallRuleOperatorVersionLt        HTTPFirewallRuleOperator = "version lt"
+	HTTPFirewallRuleOperatorVersionRange     HTTPFirewallRuleOperator = "version range"
 
 	HTTPFirewallRuleOperatorContainsBinary    HTTPFirewallRuleOperator = "contains binary"     // contains binary
 	HTTPFirewallRuleOperatorNotContainsBinary HTTPFirewallRuleOperator = "not contains binary" // not contains binary
@@ -58,140 +60,154 @@ var AllRuleOperators = []*RuleOperatorDefinition{
 	{
 		Name:            "正则匹配",
 		Code:            HTTPFirewallRuleOperatorMatch,
-		Description:     "使用正则表达式匹配,在头部使用(?i)表示不区分大小写,正则表达式语法 »",
+		Description:     "使用正则表达式匹配,在头部使用(?i)表示不区分大小写,正则表达式语法 »。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveYes,
 		DataType:        "regexp",
 	},
 	{
 		Name:            "正则不匹配",
 		Code:            HTTPFirewallRuleOperatorNotMatch,
-		Description:     "使用正则表达式不匹配,在头部使用(?i)表示不区分大小写,正则表达式语法 »",
+		Description:     "使用正则表达式不匹配,在头部使用(?i)表示不区分大小写,正则表达式语法 »。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveYes,
 		DataType:        "regexp",
 	},
+	{
+		Name:            "通配符匹配",
+		Code:            HTTPFirewallRuleOperatorWildcardMatch,
+		Description:     "判断是否和指定的通配符匹配,可以在对比值中使用星号通配符(*)表示任意字符。",
+		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveYes,
+		DataType:        "wildcard",
+	},
+	{
+		Name:            "通配符不匹配",
+		Code:            HTTPFirewallRuleOperatorWildcardNotMatch,
+		Description:     "判断是否和指定的通配符不匹配,可以在对比值中使用星号通配符(*)表示任意字符。",
+		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveYes,
+		DataType:        "wildcard",
+	},
 	{
 		Name:            "字符串等于",
 		Code:            HTTPFirewallRuleOperatorEqString,
-		Description:     "使用字符串对比等于",
+		Description:     "使用字符串对比等于。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "字符串不等于",
 		Code:            HTTPFirewallRuleOperatorNeqString,
-		Description:     "使用字符串对比不等于",
+		Description:     "使用字符串对比不等于。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "包含字符串",
 		Code:            HTTPFirewallRuleOperatorContains,
-		Description:     "包含某个字符串,比如Hello World包含了World",
+		Description:     "包含某个字符串,比如Hello World包含了World。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "不包含字符串",
 		Code:            HTTPFirewallRuleOperatorNotContains,
-		Description:     "不包含某个字符串,比如Hello字符串中不包含Hi",
+		Description:     "不包含某个字符串,比如Hello字符串中不包含Hi。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "包含任一字符串",
 		Code:            HTTPFirewallRuleOperatorContainsAny,
-		Description:     "包含字符串列表中的任意一个,比如/hello/world包含/hello和/hi中的/hello,对比值中每行一个字符串",
+		Description:     "包含字符串列表中的任意一个,比如/hello/world包含/hello和/hi中的/hello,对比值中每行一个字符串。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "strings",
 	},
 	{
 		Name:            "包含所有字符串",
 		Code:            HTTPFirewallRuleOperatorContainsAll,
-		Description:     "包含字符串列表中的所有字符串,比如/hello/world必须包含/hello和/world,对比值中每行一个字符串",
+		Description:     "包含字符串列表中的所有字符串,比如/hello/world必须包含/hello和/world,对比值中每行一个字符串。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "strings",
 	},
 	{
 		Name:            "包含前缀",
 		Code:            HTTPFirewallRuleOperatorPrefix,
-		Description:     "包含字符串前缀部分,比如/hello前缀会匹配/hello, /hello/world等",
+		Description:     "包含字符串前缀部分,比如/hello前缀会匹配/hello, /hello/world等。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "包含后缀",
 		Code:            HTTPFirewallRuleOperatorSuffix,
-		Description:     "包含字符串后缀部分,比如/hello后缀会匹配/hello, /hi/hello等",
+		Description:     "包含字符串后缀部分,比如/hello后缀会匹配/hello, /hi/hello等。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "包含二进制数据",
 		Code:            HTTPFirewallRuleOperatorContainsBinary,
-		Description:     "包含一组二进制数据",
+		Description:     "包含一组二进制数据。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "不包含二进制数据",
 		Code:            HTTPFirewallRuleOperatorNotContainsBinary,
-		Description:     "不包含一组二进制数据",
+		Description:     "不包含一组二进制数据。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string",
 	},
 	{
 		Name:            "数值大于",
 		Code:            HTTPFirewallRuleOperatorGt,
-		Description:     "使用数值对比大于,对比值需要是一个数字",
+		Description:     "使用数值对比大于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "数值大于等于",
 		Code:            HTTPFirewallRuleOperatorGte,
-		Description:     "使用数值对比大于等于,对比值需要是一个数字",
+		Description:     "使用数值对比大于等于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "数值小于",
 		Code:            HTTPFirewallRuleOperatorLt,
-		Description:     "使用数值对比小于,对比值需要是一个数字",
+		Description:     "使用数值对比小于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "数值小于等于",
 		Code:            HTTPFirewallRuleOperatorLte,
-		Description:     "使用数值对比小于等于,对比值需要是一个数字",
+		Description:     "使用数值对比小于等于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "数值等于",
 		Code:            HTTPFirewallRuleOperatorEq,
-		Description:     "使用数值对比等于,对比值需要是一个数字",
+		Description:     "使用数值对比等于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "数值不等于",
 		Code:            HTTPFirewallRuleOperatorNeq,
-		Description:     "使用数值对比不等于,对比值需要是一个数字",
+		Description:     "使用数值对比不等于,对比值需要是一个数字。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "包含索引",
 		Code:            HTTPFirewallRuleOperatorHasKey,
-		Description:     "对于一组数据拥有某个键值或者索引",
+		Description:     "对于一组数据拥有某个键值或者索引。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 		DataType:        "string|number",
 	},
 	{
 		Name:            "版本号大于",
 		Code:            HTTPFirewallRuleOperatorVersionGt,
-		Description:     "对比版本号大于",
+		Description:     "对比版本号大于。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "version",
 	},
@@ -205,49 +221,49 @@ var AllRuleOperators = []*RuleOperatorDefinition{
 	{
 		Name:            "版本号范围",
 		Code:            HTTPFirewallRuleOperatorVersionRange,
-		Description:     "判断版本号在某个范围内,格式为version1,version2",
+		Description:     "判断版本号在某个范围内,格式为 起始version1,结束version2。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
-		DataType:        "version",
+		DataType:        "versionRange",
 	},
 	{
 		Name:            "IP等于",
 		Code:            HTTPFirewallRuleOperatorEqIP,
-		Description:     "将参数转换为IP进行对比,只能对比单个IP",
+		Description:     "将参数转换为IP进行对比,只能对比单个IP。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ip",
 	},
 	{
 		Name:            "在一组IP中",
 		Code:            HTTPFirewallRuleOperatorInIPList,
-		Description:     "判断参数IP在一组IP内,对比值中每行一个IP",
+		Description:     "判断参数IP在一组IP内,对比值中每行一个IP。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ips",
 	},
 	{
 		Name:            "IP大于",
 		Code:            HTTPFirewallRuleOperatorGtIP,
-		Description:     "将参数转换为IP进行对比",
+		Description:     "将参数转换为IP进行对比。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ip",
 	},
 	{
 		Name:            "IP大于等于",
 		Code:            HTTPFirewallRuleOperatorGteIP,
-		Description:     "将参数转换为IP进行对比",
+		Description:     "将参数转换为IP进行对比。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ip",
 	},
 	{
 		Name:            "IP小于",
 		Code:            HTTPFirewallRuleOperatorLtIP,
-		Description:     "将参数转换为IP进行对比",
+		Description:     "将参数转换为IP进行对比。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ip",
 	},
 	{
 		Name:            "IP小于等于",
 		Code:            HTTPFirewallRuleOperatorLteIP,
-		Description:     "将参数转换为IP进行对比",
+		Description:     "将参数转换为IP进行对比。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "ip",
 	},
@@ -268,21 +284,21 @@ var AllRuleOperators = []*RuleOperatorDefinition{
 	{
 		Name:            "IP取模10",
 		Code:            HTTPFirewallRuleOperatorIPMod10,
-		Description:     "对IP参数值取模,除数为10,对比值为余数",
+		Description:     "对IP参数值取模,除数为10,对比值为余数。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "IP取模100",
 		Code:            HTTPFirewallRuleOperatorIPMod100,
-		Description:     "对IP参数值取模,除数为100,对比值为余数",
+		Description:     "对IP参数值取模,除数为100,对比值为余数。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},
 	{
 		Name:            "IP取模",
 		Code:            HTTPFirewallRuleOperatorIPMod,
-		Description:     "对IP参数值取模,对比值格式为:除数,余数,比如10,1",
+		Description:     "对IP参数值取模,对比值格式为:除数,余数,比如10,1。",
 		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNone,
 		DataType:        "number",
 	},