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

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

Требование - я хочу перенаправить все запросы, заканчивающиеся на /abcd к /products/abcd

Это должно соответствовать всем URL-адресам, таким как:

Это то, что я использую - rewrite /abcd/?$ https://example.com/products/abcd permanent;

Проблема - если кто-то зайдет /products/abcd, этот URL-адрес также соответствует правилу перезаписи и переходит в бесконечный цикл.

Я также пробовал это регулярное выражение, но оно не соответствует ни одному URL-адресу (т.е. перенаправления не происходит) - rewrite /(^products/)abcd/?$ https://example.com/products/abcd permanent;

Я нашел решение для этого, которое использует блоки местоположения nginx -

location /products {}
location / {
    rewrite /abcd/?$ https://example.com/products/abcd permanent;
}