Как перенаправить с помощью строки запроса в Nginx

Как перенаправить с помощью строки запроса в Nginx

Я хотел бы перенаправить:

something.com/search?keywords='value'

к

something.com/search?q='value'

Вот мой конфиг Nginx:

location ~ /search {
       if ($args ~* "keywords=(.*)") {
            rewrite ^.*$ /search?q=$arg_keywords permanent;
        }
    }

Но qпри перенаправлении параметр оказывается пустым.

Что не так?

решение1

Но параметр q при перенаправлении пуст.

Я не вижу этой проблемы. Когда я тестирую конфигурацию в том виде, в котором она написана, она создает цикл перенаправления, поскольку оригинал keywords='value'добавляется к переписанному URI.

Вы можете предотвратить rewriteвключение любых исходных параметров, добавив ?к переписанному URI.

Например:

rewrite ^ /search?q=$arg_keywords? permanent;

Видетьэтот документдля получения подробной информации.

Связанный контент