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

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

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

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

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

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

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

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

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

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

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

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

другой для достижения этого - установить аргументы в ничто:

set $args '';