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

Как перенаправить со строкой запроса в Nginx

Я хочу перенаправить:

something.com/search?keywords='value'

к

something.com/search?q='value'

Вот моя конфигурация Nginx:

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

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

Что случилось?

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

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

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

Например:

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

Видеть этот документ для подробностей.