Как перенаправить все запросы, кроме случаев, когда есть точное совпадение строк
Требование - я хочу перенаправить все запросы, которые заканчиваются /abcd
в /products/abcd
Это должно соответствовать всем URL, таким как эти
- / Коллекция / ABCD
- / Коллекции / все / ABCD
- / Привет / мир / ABCD
Это то, что я используюrewrite /abcd/?$ https://example.com/products/abcd permanent;
Проблема - если кто-то посещает /products/abcd
этот URL также соответствует правилу перезаписи и входит в бесконечный цикл.
Я также попробовал это регулярное выражение, но это не соответствует ни одному URL (т.е. не происходит перенаправления)- rewrite /(^products/)abcd/?$ https://example.com/products/abcd permanent;
1 ответ
Я нашел решение для этого, которое использует блоки местоположения nginx-
location /products {}
location / {
rewrite /abcd/?$ https://example.com/products/abcd permanent;
}