Назад | Перейти на главную страницу

Как проверить в nginx параметры query_string?

Как я могу написать условие в тестировании конфигурации nginx, если q параметр был введен в URL?

Это не работает:

 if ($arg_q) {
   return 301 "/someurl";
 }

Он ловит такие URL-адреса, как

/search?entered_search=1&q=123

Но он не улавливает такие URL, как

/search?entered_search=1&q= 

Что-то вроде этого может сработать. Он говорит: «Если строка запроса содержит последовательность 'q =', отправьте перенаправление». По крайней мере, я думаю, что это говорит о том, что я не очень хорош с регулярными выражениями. Я протестировал его, и он работает, но могут быть побочные эффекты в зависимости от того, какие строки запроса вы можете получить.

if ($query_string ~ q=) {
  return 301 "https://www.example.com";
}

Этот ответ помогло мне разобраться.