假设$ request_uri的值是/ a / b / c。 $ uri的当前值是/index.php。 这是可能改变我的$ uri为/ b / c。
我试过这个,似乎没有工作,
if ($request_uri ~* /a/(.*)/(.*)){ set $uri /$1/$2; }
但是这给了重复的“uri”variables的错误。 我也试过了,
if ($request_uri ~* /a/(.*)/(.*)){ rewrite ^ /$1/$2 break; }
但$variables似乎不存储值。
有出路吗? 谢谢。
你可以只使用一个临时variables? 例如(未尝试):
if ($request_uri ~* /a/(.*)/(.*)){ set $tmp /$1/$2; rewrite ^ $tmp break; }
或者如何:
if ($request_uri ~* /a/(.*)/(.*)){ rewrite ^ $request_uri; rewrite ^/[^/]*/(.*)/(.*) /$1/$2 break; }
由@MTeck在https://stackoverflow.com/questions/9084969/nginx-request-uri-without-args回答
如果你真的想要清除参数$ request_uri,你可以这样做。
local uri = string.gsub(ngx.var.request_uri, "?.*", "")
你将需要有卢阿可用,但这将做你正在问什么。