
есть ли эквивалент "не" для совпадений nginx? Я думаю
location !~ "\.(html|php)$" {
deny all;
}
чтобы разрешить обслуживание только файлов HTML и PHP. Альтернативой является «deny all» с последующим ~ и «allow all». Увы, это, похоже, каким-то образом мешает какой-то более ранней магии местоположения в моем файле nginx.
решение1
Вы можете использовать вложенную логику местоположения следующим образом:
location / {
deny all;
location ~* "\.(html|php)$" {
Allow all;
}
}
решение2
Регулярно выраженные местоположения также соответствуют порядку. Так что вы также можете использовать что-то вроде этого:
location ~* "\.(html|php)$" { ...; break; } location ~* "." { deny all; }
Обратите внимание, что второе местоположение также должно быть основано на регулярном выражении.