重写目录作为参数
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 重定向;
}
我正在尝试重定向来自
的请求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 重定向; }