重写目录作为参数

Rewrite directory as parameter

我正在尝试重定向来自

的请求

example.com/abc234

example.com/setup.html?s=abc234

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

server {
 server_name  example.com;
 root         /var/www/html;
 rewrite      ^(.*)$ /setup.html?s= 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;
    }
}

有关更多信息,请参阅 this document。 重写 ^(.*)$ /setup.html?s=$1 重定向; }