with protect password htpasswd for nginx

htpasswd - nginx protect folder with password



nginx: auth_basic para todo excepto una ubicación específica (3)

Estoy haciendo algo similar usando "map" en lugar de "if" para asignar la variable de dominio auth_basic y el archivo htpasswd:

map $http_host $siteenv { default dev; ~^(?<subdomain>.+)/.dev dev; ~^(?<subdomain>.+)/.devprofile devprofile; ~^(?<subdomain>.+)/.devdebug devdebug; ~^(?<subdomain>.+)/.test test; ~^(?<subdomain>.+)/.demo demo; ~^(?<subdomain>.+)/.stage stage; # Live ~^(?<subdomain>.+)/.live live; ~^.*/.(?P<subdomain>.+)/.[a-zA-Z]* live; } map $http_host $auth_type { default "Restricted"; ~^(?<subdomain>.+)/.dev "Development"; ~^(?<subdomain>.+)/.devprofile "Development"; ~^(?<subdomain>.+)/.devdebug "Development"; ~^(?<subdomain>.+)/.test "Testing"; ~^(?<subdomain>.+)/.stage "Stage"; ~^(?<subdomain>.+)/.demo "Demo"; # Live ~^(?<subdomain>.+)/.live "off"; ~^.*/.(?P<subdomain>.+)/.[a-zA-Z]* "off"; } server { .. etc .. auth_basic $auth_type; auth_basic_user_file /etc/nginx/conf.d/htpasswd-$siteenv; }

¿Cómo puedo habilitar la Autenticación básica HTTP para todo excepto un determinado archivo?

Aquí está mi configuración de bloque de servidor actual para la ubicación:

location / { auth_basic "The password, you must enter."; auth_basic_user_file /etc/nginx/htpasswd; } location /README { auth_basic off; }

Sin embargo, en /README , sigue solicitando una contraseña.

como podemos arreglar esto?

¡Gracias! marca


Intenta usar sign =, que te ayuda a:

location = /README { auth_basic off; allow all; # Allow all to see content }