加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

自定义401页面不提示在Nginx上输入凭据

发布时间:2020-12-13 20:53:07 所属栏目:Nginx 来源:网络整理
导读:我的网站部分受auth_basic保护: location / { auth_basic "Authorization Required"; auth_basic_user_file .htpasswd; index app.php; try_files $uri @rewriteapp; } 对于未授权的用户(单击“取消”的用户),我想显示一个自定义错误页面.这是我的操作方法

我的网站部分受auth_basic保护:

    location / {
            auth_basic "Authorization Required";
            auth_basic_user_file .htpasswd;
            index  app.php;
            try_files $uri @rewriteapp;
    }

对于未授权的用户(单击“取消”的用户),我想显示一个自定义错误页面.这是我的操作方法:

    error_page 401 = @error401;

    location @error401 {
                    rewrite ^ /error/401.html redirect;
    }

    location /error {
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public";
            index  app.php;
            try_files $uri @rewriteapp;
    }

我必须创建@ error401别名,以便可以指定“ Redirect”,因为如果使用内部重定向,我的应用程序将处理原始请求(并提供对实际请求页面的访问权限!)

这样就可以正常工作,显示页面.
问题在于,现在nginx甚至不要求用户提供那里的凭据.

有没有什么办法解决这一问题 ?还是有更好的方法来解决此问题?

最佳答案
这就是我能够完成您想要做的事情的方式:

## Path must be prefixed with a /,i.e. /401.html,NOT 401.html
error_page 401 /401.html;

location ~ (401.html)${
    alias /usr/share/nginx/html/$1;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读