我想使用base_auth保护我网站的管理区域,配置类似于
location ^~ /admin/ {
auth_basic 'Restricted';
auth_basic_user_file /opt/webroot/.htpasswd;
# this section is supposed to be valid only if auth_basic succeeds
if (!-e $request_filename ){
rewrite ^/(.*)$ /index.php?$1 last;
break;
}
}
因为'admin'实际上不存在,所以它是一条虚拟路径。无论身份验证成功与否,重写规则始终适用。
我的问题是,只有在auth_basic成功通过身份验证后才可以应用重写规则?
答案 0 :(得分:0)
您可以使用try_files
。
location ^~ /admin/ {
auth_basic 'Restricted';
auth_basic_user_file /opt/webroot/.htpasswd;
try_files $uri /index.php;
}