nginx перезаписывает URL-адрес с if и arg

Попытка использовать подстановочный редирект здесь, но невозможно определить, что установить для подстановочного знака, например:

URL: example.com/search?q=broccoliru / search? q = брокколиru / search? q = брокколи Перенаправление на: example.com/?s=broccoli

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

, но и тут не повезло.

0
задан 5 January 2019 в 18:41
1 ответ

Если вы пытаетесь использовать значение q, тогда вы просто используете это значение, как и раньше!

location /search {
    if ($arg_q) {
        return 301 https://example.com/?s=$arg_q;
    }
}
2
ответ дан 4 December 2019 в 13:22

Теги

Похожие вопросы