Возможно, это глупый вопрос, но я не могу найти хорошую документацию или примеры для этого ...
Когда вы используете блоки местоположения для фильтрации входящих запросов, вы выполняете перезапись из совпадающего местоположения или с начала запроса?
Пример:
location ^~ /category/ {
rewrite ^/category/paid-search-news/?$ /tag/paid-search permanent; # this,
rewrite ^paid-search-news/?$ /tag/paid-search permanent; # this,
rewrite paid-search-news/?$ /tag/paid-search permanent; # or this?
}
С самого начала запроса. На это есть документация Вот.
location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 break;
rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra break;
return 403;
}
В документация подразумевает, что совпадает полный URL (т.е. ваш первый пример).