Corresponder localização com base na extensão do arquivo com NGINX
Publicado: 15 de fevereiro de 2025 às 01:11:12 UTC
Última atualização: 12 de janeiro de 2026 às 08:35:48 UTC
Este artigo explica como realizar a correspondência de padrões com base em extensões de arquivo em contextos de localização no NGINX, útil para reescrita de URLs ou para lidar com arquivos de forma diferenciada de acordo com seu tipo.
Match Location Based on File Extension with NGINX
As informações neste post são baseadas no NGINX 1.4.6 rodando no Ubuntu Server 14.04 x64. Elas podem ou não ser válidas para outras versões.
Não sou muito bom em expressões regulares (algo que provavelmente deveria melhorar, eu sei), então frequentemente preciso pesquisar sobre o assunto quando tenho que fazer algo além da correspondência de padrões mais simples, por exemplo, no contexto de localização do NGINX.
Uma funcionalidade muito útil, caso precise lidar com tipos de arquivo específicos de forma diferenciada, é a capacidade de encontrar um local com base na extensão do arquivo solicitado. E é muito fácil também; sua diretiva de localização poderia ser algo como:
{
// do something here
}
Claro, você pode simplesmente alterar as extensões para o que precisar.
O exemplo acima não diferencia maiúsculas de minúsculas (por exemplo, ele corresponderá tanto a .js quanto a .JS). Se você quiser que ele diferencie maiúsculas de minúsculas, basta remover o * depois do ~.
O que você fizer com a correspondência depende de você; normalmente, você a reescreveria para um back-end que faça algum tipo de pré-processamento, ou você pode simplesmente querer ler os arquivos de pastas diferentes daquelas que são visíveis ao público, as possibilidades são infinitas ;-)
