
Después de más de 15 años de usar el servidor web de Apache, quería darle una oportunidad al chico nuevo. ;) He estado intentando modificar mis archivos de configuración de NGINX para que sean breves.
El sitio generalmente reescribe todo el tráfico en un archivo específico index.php
, pero tengo dos directorios privacy
que eula
contienen mensajes de correo electrónico individuales index.php
, por lo que para esos dos directorios quiero que solo llame a los archivos en los directorios.
Por ejemplo:
location ~ /(privacy|eula) {
try_files $uri $uri/ =404;
}
hace que mi navegador descargue el contenido de las páginas como un archivo .dms.
Si divido la ubicación en dos así:
location /privacy {
try_files $uri $uri/ =404;
}
location /eula {
try_files $uri $uri/ =404;
}
Funciona según lo previsto.
Busqué y también encontré la sugerencia de hacerlo de esta manera, pero tuvo el mismo efecto location ~ ^/(privacy|eula)
. ¿Tengo que vivir con el hecho de que NGINX es muy detallado o qué estoy haciendo mal?
Gracias
Respuesta1
Elexpresión regular location
Los bloques se evalúan en orden hasta que se encuentra una coincidencia.
En su caso, lo ha colocado location ~ /(privacy|eula)
encima del location ~ \.php$
bloque, de modo que un URI similar /eula/index.php
no será procesado en la ubicación correcta y en su lugar se descargará.
Colocar ellocation ~ /(privacy|eula)
bloquedespuésel location ~ \.php$
bloque.
Vereste documentopara detalles.