nginx 使用 if 和 arg 重写 url

nginx 使用 if 和 arg 重写 url

尝试在此处使用通配符重定向,但无法确定要为通配符设置什么,例如:

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;
    }
}

相关内容