![nginx 使用 if 和 arg 重写 url](https://linux22.com/image/731617/nginx%20%E4%BD%BF%E7%94%A8%20if%20%E5%92%8C%20arg%20%E9%87%8D%E5%86%99%20url.png)
尝试在此处使用通配符重定向,但无法确定要为通配符设置什么,例如:
URL:example.com/search?q=broccoli 重定向到:example.com/?s=broccoli
西兰花可以是任何东西
代码:
location /search {
if ($arg_q) {
return 301 https://example.com/?s=$1;
}
}
结果是 example.com/?s=
不确定要用什么“变量”来代替 $1
我在想也许必须做类似的事情
location /search {
if ($arg_q = (.*)) {
return 301 https://example.com/?s=$1;
}
}
但也没有运气。
答案1
如果您尝试使用 q 的值,那么您只需使用该值,就像您已经做的一样!
location /search {
if ($arg_q) {
return 301 https://example.com/?s=$arg_q;
}
}