How check in nginx for query_string parameters?

How I can write a condition in the nginx config testing if a q parameter was entered in the URL?

This doesn't work:

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

It catches URLs like

/search?entered_search=1&q=123

But it doesn't catch URLs like

/search?entered_search=1&q= 
1
задан 28 September 2017 в 09:07
1 ответ

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

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

Этот ответ помог мне решить эту проблему.

1
ответ дан 3 December 2019 в 23:25

Теги

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