vamshi Wrote: ------------------------------------------------------- > header_filter_by_lua ' > ngx.header.content_length = nil > ngx.header.set_cookie = nil > > if ngx.header.location then > local _location = ngx.header.location > _location = ngx.escape_uri(_location) > _location = "http://10.0.9.44/?_redir_=" .. > _location > ngx.header.location = _location > end > '; > > body_filter_by_lua ' > > local escUri = function (m) > local _esc = "href=\\"http://10.0.9.44/?_redir_=" > .. ngx.escape_uri(m[1]) .. "\\"" > print(_esc) > return _esc > end > > local chunk, eof = ngx.arg[1], ngx.arg[2] > local buffered = ngx.ctx.buffered > if not buffered then > buffered = {} > ngx.ctx.buffered = buffered > end > > if chunk ~= "" then > buffered[#buffered + 1] = chunk > ngx.arg[1] = nil > end > > if eof then > local whole = table.concat(buffered) > ngx.ctx.buffered = nil > local newStr, n, err = ngx.re.gsub(whole, > "href=\\"(.*)\\"", escUri, "i") > ngx.arg[1] = whole > print(whole) > end > '; > ... > > > As you can see, print(_esc) show that the URL was successfully > URLencoded. Yet, the print(whole) line does not reflect the gsub() > > What could be issue here ? > > -Vamshi
gsub is going to return the results of the substitution, not do it inline. You should be outputting/assigning newStr not whole. Cheers, Josh Posted at Nginx Forum: http://forum.nginx.org/read.php?2,251248,251425#msg-251425 _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
