14 replace_Mod - starjun/starjun.github.io GitHub Wiki
replace_Mod response内容替换模块
该模块是整个访问控制规则的 第14步 用于配置返回内容的替换
[
{
"state": "on",
# 该条规则开关(on/off)
"uri": ["^/api/ip_dict$","jio"],
# uri规则;第一个参数:匹配内容,第二个:匹配方式,正则匹配
"hostname": ["101.200.122.200",""],
# host规则;第一个参数:匹配内容,第二个:匹配方式,字符串等于
"replace_list":
# 替换规则列表
[
["deny","","denyFUCK"],
# 第一条替换规则;第一个参数:需要替换的字符串;第二个:匹配方式,字符串等于;第三个:替换的字符串
["allow","","allowPASS"],
["lzcaptcha\\?key='\\s*\\+ key","jio","lzcaptcha?keY='+key+'&keytoken=@token@'"]
# 第三条替换规则;第三参数中的@token@表示动态生成的token
]
},
... # 下一条规则
]
上面的例子表示,规则启用,host为passport.game.com,url是正则匹配,匹配成功则进行返回内容替换
1:将"联合"替换为"联合FUCK"
2:将"登录"替换为"登录POSS"
3:通过正则进行匹配(ngx.re.gsub)其中@token@表示动态替换为服务器生成的一个唯一随机字符串
state:表示是否启用规则
hostname:表示匹配的host
uri:表示匹配的uri
replace_list:表示替换列表
参数1 ==> 被替换内容;
参数2 ==> 匹配模式(正则、字符串)如例子中前2个替换列表就是字符串匹配,使用""即可,不能没有;
参数3 ==> 被替换的内容
数据请求样式
URI: http://%ip:%port/api/v2/config_dict
查询操作:
[id 默认是空 表示查询所有;id 支持 点分查询 EG:1.state 表示查询第一条规则的state]
1:查询所有
GET/POST querystring:
action=get&mod=replace_Mod
2:查询指定id (支持子节点查询,eg: 1@state)
GET/POST querystring:
action=get&mod=replace_Mod&id=1
action=get&mod=replace_Mod&id=1@state
设置操作:
1:修改整体
GET/POST querystring:
action=set&mod=replace_Mod&value=
[
{
"state": "on",
"uri": ["^/api/ip_dict$","jio"],
"hostname": ["101.200.122.200",""],
"replace_list":
[
["deny","","denyFUCK"],
["allow","","allowPASS"],
["lzcaptcha\\?key='\\s*\\+ key","jio","lzcaptcha?keY='+key+'&keytoken=@token@'"]
]
}
]
2:修改单个
GET/POST querystring:
action=set&mod=replace_Mod&id=1&value_type=json&value=
{
"state": "on",
"uri": ["^/api/ip_dict$","jio"],
"hostname": ["101.200.122.200",""],
"replace_list":
[
["deny","","denyFUCK"],
["allow","","allowPASS"],
["lzcaptcha\\?key='\\s*\\+ key","jio","lzcaptcha?keY='+key+'&keytoken=@token@'"]
]
}
删除操作:
1:删除单个
GET/POST querystring:
action=del&mod=replace_Mod&id=1
添加操作:
1:删除单个
GET/POST querystring:
action=add&mod=replace_Mod&value=
{
"state": "on",
"uri": ["^/api/ip_dict$","jio"],
"hostname": ["101.200.122.200",""],
"replace_list":
[
["deny","","denyFUCK"],
["allow","","allowPASS"],
["lzcaptcha\\?key='\\s*\\+ key","jio","lzcaptcha?keY='+key+'&keytoken=@token@'"]
]
}
返回消息:
服务器失败:http code ~= 200
服务器成功:{code="ok/error",msg=...}
code = error ,执行状态错误,msg 为错误内容