As localizações no nginx definem configurações exclusivas, isto é, com dois locais
location /dir1/dir2/ {
# configuration A
}
location ~ \.(css|js|htc)$ {
# configuration B
}
apenas uma configuração será usada para uma solicitação. Com os locais acima (como na sua configuração), para uma solicitação para /dir1/dir2/file.css
, será selecionado location ~ \.(css|js|htc)$
de acordo com regras de seleção de local .
Se você quiser que o nginx não procure por locais dados por expressões regulares se a solicitação começar com /dir1/dir2/
, use ^~
modifier:
location ^~ /dir1/dir2/ {
# configuration A
}
location ~ \.(css|js|htc)$ {
# configuration B
}
Dessa forma, o location ^~ /dir1/dir2/
local será usado para uma solicitação /dir1/dir2/file.css
.
Como alternativa, você pode isolar seus locais de expressão regular em outro local de prefixo, por exemplo, location /
, assim:
location / {
# configuration for normal files under /
location ~ \.(css|js|htc)$ {
# configuration for css/js/htc files under /
}
}
location /dir1/dir2/ {
# configuration for all files under /dir1/dir2/
}
Consulte o link para obter detalhes adicionais. O artigo Como o nginx processa uma solicitação também pode ser útil.