如果请求网址为
test.com/gifts.如果我使用的是
ngx.var.uri输出
/gifts/预期产出为
test.com/gifts代码:
location /gifts { try_files $uri @url_change; } location @url_change { default_type text/html; content_by_lua ' ngx.say(ngx.var.uri) '; }
答案 0 :(得分:12)
我真的不明白你想要什么,但如果你想要实际的完整网址,我认为你可以使用这个
$http_host$request_uri;
答案 1 :(得分:6)
如果有人正在寻找原始请求uri ,请点击此处:
ngx.var.request_uri
虽然ngx.var.uri
是ngx重写阶段后的新uri。
试一试:
ngx.say(ngx.var.request_uri)
答案 2 :(得分:2)
不仅仅是$host
变量,即ngx.var.host
?
答案 3 :(得分:2)
ngx.say(ngx.var.host .. '/' .. ngx.var.uri)
答案 4 :(得分:0)
当 query_string 为 nil 时,生成完整的 url 并避免出错:
local full_url = ngx.var.scheme.."://"..ngx.var.http_host..ngx.var.request_uri
if ngx.var.query_string ~= nil then
full_url = full_url.."?"..ngx.var.query_string
end
ngx.say(full_url)