Как реализовать перенаправление с отрицанием в nginx?
Есть набор URL следующего содержания:
/category/*.html
/category/*/XXX.html , где * - некая буквенная последовательность, а XXX - число от 1 до 9999
Подскажите пожалуйста, как в nginx правильно написать правило rewrite чтобы все URL вида /category/*.html за исключением URL вида /category/*/XXX.html перенаправлялись на URL /category/*/
location /category/ {
# если URI заканчивается на XXX.html,
# то реврайтим в то же самое и прекращаем обработку.
rewrite "^(.+\d{1,4}\.html)$" $1 break;
# у всего остального заменяем `.html` на `/`
rewrite "^(.+)\.html$" $1/;
}
{1,4} можно заменить на + если количество цифр не принципиально.