Regex de configuração NGINX no local

Regex de configuração NGINX no local

Vindo de mais de 15 anos usando o servidor web Apache, eu queria dar uma chance ao novo garoto. ;) Tenho tentado ajustar meus arquivos de configuração do NGINX por questões de brevidade.

O site geralmente reescreve todo o tráfego para um arquivo específico index.php, mas eu tenho dois diretórios privacye eulaque contêm arquivos individuais index.php, portanto, para esses dois diretórios, quero apenas chamar os arquivos nos diretórios.

Por exemplo:

location ~ /(privacy|eula) {
  try_files $uri $uri/ =404;
}

faz com que meu navegador baixe o conteúdo das páginas como um arquivo .dms.

Se eu dividir o local em dois assim:

location /privacy {
  try_files $uri $uri/ =404;
}

location /eula {
  try_files $uri $uri/ =404;
}

Funciona como pretendido.

Pesquisei e também encontrei a sugestão de fazer desta forma, mas teve o mesmo efeito location ~ ^/(privacy|eula). Preciso apenas conviver com o fato de que o NGINX é muito detalhado ou o que estou fazendo de errado?

Obrigado

Responder1

Oexpressão regular locationos blocos são avaliados em ordem até que uma correspondência seja encontrada.

No seu caso, você colocou location ~ /(privacy|eula)acima do location ~ \.php$bloco, para que um URI como /eula/index.phpnão seja processado pelo local correto e seja baixado.

Coloque o location ~ /(privacy|eula)blocodepoiso location ~ \.php$bloco.

Veresse documentopara detalhes.

informação relacionada