Затем nginx проверяет location’ы, заданные регулярными выражениями, в порядке их следования в конфигурационном файле. При первом же совпадении поиск прекращается и nginx использует совпавший location.
Информации от access_log nginx'а не достаточно.
^(?!www\.|new\.)(?<subdomain>[a-z\.]+)\.site.com$
server{
server_name ваш_домен;
root /путь/где/всё/будет/лежать;
index index.html;
location / {
try_files $uri /index.html;
}
}