nginx перезапись URL-адреса со строкой запроса

Я давно гуглил и не могу понять этого. Это кажется простым, и я уверен, что это так, но я не эксперт по серверам.

Мой URL: http://www.example.com/blog/?tag=Word1+Word2

Некоторые теги состоят из одного слова (например, велосипед), некоторые длиннее (например, двухколесный велосипед).

Мне нужно, чтобы этот URL выводился как: example.com/blog/tag/word1- word2 /

Как я могу переписать для этого?

4
задан 20 December 2015 в 17:25
1 ответ

Вы должны послать - в вашем запросе вместо +, чтобы получить тот же формат и сделать более простой запрос :

location ~ /blog/ {
    if ($args ~* "tag=(.*)") {
        set $w1 $1;
        rewrite .* /blog/tag/$w1/? permanent;
    }
}

На основании ссылки, которую я отправил

? в конце удалит параметры строки запроса (из перепишите doc )

Если вы укажете ? в конце перезаписи, то Nginx опустит исходные $args (аргументы)

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

set $args '';
1
ответ дан 3 December 2019 в 04:09

Теги

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