У меня есть экземпляр prestashop, который генерирует случайный URL для доступа администратора. Единственное правило заключается в том, что путь начинается с «admin».
Следующее правило работает просто отлично, но оно жестко запрограммировано вручную:
location /admin6908ewwh6/ {
if (!-e $request_filename) {
rewrite ^/.*$ /admin6908ewwh6/index.php last;
}
}
Я пытался переписать его так:
location ^(/admin.*?)(\w+)/ {
if (!-e $request_filename) {
rewrite ^/.*$ $1/index.php last;
}
}
Но это не работает, и я не знаю почему, так как в соответствии с этим сопоставителем регулярных выражений (https://www.regextester.com/102896), когда я помещаю регулярное выражение ^(/admin.*?)(\w+)
против тестовой строки /admin6908ewwh6/index.php/sell/catalog/products/new?_token=_JC1fQPwgvwnhZTWyeGVTy4nET350GC4Aro888TuzDA&
это просто захватывает то, что мне нужно взять.
Может кто-нибудь объяснить мне, почему эти два блока местоположения не эквивалентны?