如何从nginx的request_uri中将$ uri修改为uri的一部分?

假设$ 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, "?.*", "")

你将需要有卢阿可用,但这将做你正在问什么。