nginx 重定向基于来自 uri 的参数 id
nginx redirect based on parameter id from uri
需要根据 personId uri 参数进行重定向。
重定向 https://server.com/de/prints/?personId=1 to https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=1
需要为每个 personId 值执行此操作,所以基本上如果请求是:https://server.com/de/prints/?personId=2
将其重定向到 https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=2
我尝试了以下方法,但没有用:
location ~* ^/de/prints? {
if ($args ~* "personId=*") {
rewrite ^.*$ https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId= redirect;
}
}
为了在您的 URL 中使用 </code>,您需要用括号(捕获组)捕获原始 URL 中的人员 ID。</p>
<p>类似于 <code>.*[&?]personId=([0-9]+)
而不是 ^.*$
我设法使用以下方法使其工作:
location ~ /de/prints/ {
if ($args ~* "personId=(.*)") {
return 302 https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=;
}
}
需要根据 personId uri 参数进行重定向。
重定向 https://server.com/de/prints/?personId=1 to https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=1
需要为每个 personId 值执行此操作,所以基本上如果请求是:https://server.com/de/prints/?personId=2 将其重定向到 https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=2
我尝试了以下方法,但没有用:
location ~* ^/de/prints? {
if ($args ~* "personId=*") {
rewrite ^.*$ https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId= redirect;
}
}
为了在您的 URL 中使用 </code>,您需要用括号(捕获组)捕获原始 URL 中的人员 ID。</p>
<p>类似于 <code>.*[&?]personId=([0-9]+)
而不是 ^.*$
我设法使用以下方法使其工作:
location ~ /de/prints/ {
if ($args ~* "personId=(.*)") {
return 302 https://anotherserver.com/dir1/dir2/dir3/dir4/dir5/the-result?statusId=1&personId=;
}
}