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

Требование - я хочу перенаправить все запросы, которые заканчиваются /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;
}
Другие вопросы по тегам