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
}
No veo ningún error en su configuración. Aquí hay una respuesta detallada:
https://serverfault.com/questions/330580/enable-basic-auth-sitewide-and-disabling-it-for-subpages