nginx: переписать регулярное выражение для соответствия URL без цифры в конце - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь настроить правило перезаписи, чтобы выполнить следующее:

  • /base/{first} -> /base/search/{first}

  • /base/{first}/{second} -> /base/search/{first}/{second}

И, конечно, /base/search/{first} не следует перенаправлять на /base/search/search/{first}

{first} и {second} являются заполнителями для строк с алфавитными символами и тире (без цифр).

Однако я не хочу переписывать URL-адреса, как показано ниже:

  • /base/{first}/{second}/{third}/{123}

{123} является заполнителем для трехсимвольной строки, состоящей только из цифр

Я пробовал следующий блок местоположения, и я могу получить первые два требования, но он также захватывает URL, которые заканчиваются на {123}

location ~* ^/base/(?!search)[^\d]+$ {
  rewrite ^/base/(?!search)(.+) https://$server_name/base/search/$1 permanent;
}
...