feat: rewrite Location headers from origin to point at a mirror
This commit is contained in:
parent
09b178dca8
commit
d9b8b1b364
1 changed files with 18 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
-- Determine if we rewrite the body of this type of content
|
||||||
if ngx.header["Content-Type"] then
|
if ngx.header["Content-Type"] then
|
||||||
local content_type = ngx.header["Content-Type"]
|
local content_type = ngx.header["Content-Type"]
|
||||||
if content_type:find("text/html") or
|
if content_type:find("text/html") or
|
||||||
|
@ -12,3 +13,20 @@ if ngx.header["Content-Type"] then
|
||||||
ngx.header["Content-Length"] = nil
|
ngx.header["Content-Length"] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Rewrite any redirects from the origin to point at a mirror
|
||||||
|
if ngx.header["Location"] then
|
||||||
|
if ngx.ctx.jasima_pool_map and not ngx.ctx.jasima_config.rewrite_disable then
|
||||||
|
local location = ngx.header["Location"]
|
||||||
|
for from, to in pairs(ngx.ctx.jasima_pool_map) do
|
||||||
|
if ngx.ctx.jasima_config.rewrite_case_insensitive then
|
||||||
|
local pattern = ngx.re.escape(from)
|
||||||
|
location = ngx.re.gsub(location, pattern, to, "ijo")
|
||||||
|
else
|
||||||
|
local pattern = from:gsub("([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape Lua patterns
|
||||||
|
location = location:gsub(pattern, to)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ngx.header["Location"] = location
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue