是否可以检测base_auth是否在nginx配置中成功?

时间:2014-06-19 07:50:39

标签: nginx

我想使用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成功通过身份验证后才可以应用重写规则?

1 个答案:

答案 0 :(得分:0)

您可以使用try_files

location ^~ /admin/ {
     auth_basic 'Restricted';
     auth_basic_user_file /opt/webroot/.htpasswd;

     try_files $uri /index.php;
}
相关问题