修改cookie属性:
版本一:
header_filter_by_lua '
local cookies = ngx.header.set_cookie
if cookies then
if type(cookies) == "table" then
for k,v in pairs(cookies) do
ngx.log(ngx.INFO,"k:"..k..",value:"..v)
cookies[k]=string.gsub(v, "test", "hello")
ngx.header.set_cookie = cookies
end
else
ngx.log(ngx.INFO,"cookie:"..cookies)
local cookiesStr = string.gsub(cookies, "test", "hello")
ngx.header.set_cookie = cookiesStr
end
end
';
版本二:
header_filter_by_lua '
local cookies = ngx.header["set-cookie"]
if cookies then
if type(cookies) == "table" then
for k,v in pairs(cookies) do
ngx.log(ngx.INFO,"k:"..k..",value:"..v)
cookies[k]=string.gsub(v, "test", "hello")
ngx.header.["set-cookie"] = cookies
end
else
ngx.log(ngx.INFO,"cookie:"..cookies)
local cookiesStr = string.gsub(cookies, "test", "hello")
ngx.header.["set-cookie"] = cookiesStr
end
end
';
说明:
1、以上例子是在响应头中的cookie属性中查找“test”字符串,找到后就替换为“hello”字符串。
2、响应头中有多个相同属性的情况:if type(cookies) == "table" then
本文参考:https://segmentfault.com/a/1190000007914136