我正试图redirect请求
example.com/abc234
到
example.com/setup.html?s=abc234
到目前为止,我已经尝试了以下方法,但似乎总是以1)不传递参数或2)以无限循环(或404)结束,因为它也尝试redirectredirect的请求? 该请求必须被明显改写,因为我想用JS取代参数,而不是PHP。
server { server_name example.com; root /var/www/html; rewrite ^(.*)$ /setup.html?s=$1 redirect; }
我也尝试了各种各样的location / { try_files ...; }
组合location / { try_files ...; }
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重定向; }