Nginx 将目录重写为参数

Nginx 将目录重写为参数,nginx,nginx-location,Nginx,Nginx Location,我正在尝试重定向来自的请求 example.com/abc234to example.com/setup.html?s=abc234 到目前为止,我已经尝试了以下方法,但它似乎总是以1)不传输参数或2)以无限循环(或404)结束,因为它还尝试重定向重定向的请求?请求必须被明显地重写,因为我想用JS而不是PHP获取参数 server { server_name example.com; root /var/www/html; rewrite ^(.*)$ /set

我正在尝试重定向来自的请求

example.com/abc234
to

example.com/setup.html?s=abc234

到目前为止,我已经尝试了以下方法,但它似乎总是以1)不传输参数或2)以无限循环(或404)结束,因为它还尝试重定向重定向的请求?请求必须被明显地重写,因为我想用JS而不是PHP获取参数

server {
 server_name  example.com;
 root         /var/www/html;
 rewrite      ^(.*)$ /setup.html?s=$1 redirect;
}

我还尝试了
location/{try_files…;}
的各种组合,或者在
rewrite
中使用绝对URL,但没有成功。

一种技术是只重写与物理文件不匹配的URI

例如:

server {
    server_name  example.com;
    root         /var/www/html;

    location / {
        try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
        return 302 /setup.html?s=$uri;
    }
}
更多信息,请参阅。 重写^(.*)$/setup.html?s=$1重定向; }