【发布时间】:2013-01-24 12:07:58
【问题描述】:
我的网站的一部分受到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 别名,以便指定“重定向”,因为如果我使用内部重定向,我的应用程序将处理原始请求(并允许访问实际请求的页面!)
所以这工作正常,页面显示。 问题是现在 nginx 甚至不向用户询问那里的凭据。
有没有办法解决这个问题?或者有什么更好的方法来处理这个问题?
【问题讨论】:
标签: nginx basic-authentication http-status-code-401