我有以下的Apache重写指令:
RewriteCond %{REQUEST_URI} ^/proxy(/|$) [NC] RewriteCond %{QUERY_STRING} (^|&)uri=(.*?)(&|$) [NC] RewriteRule .* /api/vs1.0/%2 [NC,L]
而我正在尝试nginx,所以试图将重写转移。 我想出了…
rewrite ^/proxy(/|$) /api/vs1.0/$2 last; rewrite (^|&)uri=(.*?)(&|$) /api/vs1.0/$2 last;
这可能是非常不正确的。 我只是一个纯粹的networking开发者,所以我想知道是否有人可以在这里伸出援助之手。 我会非常感激。 我看到我忽略了查询string规范,但是我认为这不应该有问题。 我只是对原来的重写是完成了一个模糊的概念,所以我没有太多的希望在这里提出一些体面的,尽pipe读了两个服务器的相关文件。
尝试这个:
location ~* ^/proxy(/|$) { if ($args ~* "(^|&)uri=(.*?)(&|$)") { set $arg_uri $2; rewrite .* /api/vs1.0/$arg_uri last; } }
~* :用于不区分大小写的匹配 $args :请求中的GET参数