nginx: ¿coincidencia de expresiones regulares no iguales?

nginx: ¿coincidencia de expresiones regulares no iguales?

¿Existe un equivalente "no" para las coincidencias de nginx? estoy pensando

location !~ "\.(html|php)$" {
    deny all;
}

para permitir servir sólo archivos html y php. la alternativa es "negar todo" seguido de ~ con "permitir todo". Por desgracia, esto parece interferir de alguna manera con alguna magia de ubicación anterior en mi archivo nginx.

Respuesta1

Puedes usar una lógica de ubicación anidada como esta:

location / {
  deny all;
  location ~* "\.(html|php)$" {
    Allow all;
  }
}

Respuesta2

Las ubicaciones con expresiones regulares también coinciden según su orden. Entonces también podrías usar algo como esto:

location ~* "\.(html|php)$" { ...; break; } location ~* "." { deny all; }

Observe que la segunda ubicación también debe estar basada en expresiones regulares.

información relacionada