这以前一直有效,所以我不确定为什么它现在不起作用。
设想
我在希望其他用户查看的文件夹中完成了工作。当他们访问它时,他们的用户名/密码组合有效,但每当他们导航到不同的页面时,他们都会再次收到登录提示。但是,当他们使用我的帐户时,它会按预期工作。
问题
这里发生了什么,我该如何绕过它?我已经做了很多尝试来解决这个问题,但都没有成功。
笔记
- 我的用户是机器上的linux用户
- 他们的用户是具有 (SHA) htpasswd 记录的 htaccess 用户
- 这直到最近才开始发生(我不知道有任何服务器更新)
- 我已经从多个浏览器、多个操作系统、多个 IP 尝试过这个
.htaccess
AuthUserFile /var/www/.htpasswd
AuthType Basic
AuthName "Password Required"
Require user jackson david
Order Deny,Allow
Deny from All
# jackson home
Allow from xx.xx.xx.219
Satisfy Any
服务器信息
$ apache -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jul 15 2016 15:34:04
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
基本身份验证要求浏览器随每个HTTP 请求发送您的凭据,当您尝试访问没有有效用户名/密码的密码保护区域时,服务器会提示您输入这些凭据。
基本身份验证的范围也受到限制, 当您超出初始范围时,您的浏览器将停止随每个请求发送您的已知凭据。
例如,给定一个经过身份验证的请求:
对以下 URI 的请求可以使用已知的凭据:
而 URI
将被视为超出身份验证范围。如果其中一个或多个位置也受密码保护(例如使用不同的 .htaccess 文件),服务器将需要提示您的浏览器再次提供凭据。
当域相同并且“领域”(
AuthName
ie 的值"Password Required"
)对于您的 Web 服务器上的两个区域相同时,浏览器将首先尝试已知的凭据。如果领域不同,浏览器将不会使用已知凭据,但会显示登录提示。使用嵌套的身份验证和不同的“领域”值,但有效的用户名/密码组合相同(见下文),您将获得稍微违反直觉的行为,即您访问 URL 的顺序很重要
首先
http://example.com/folder/docs
将存储您的密码,但由于不同的领域,当您离开原始上下文时,系统会提示您输入密码http://example.com/folder
。当您第一次访问时,
http://example.com/folder
您的凭据将被存储并在您访问时自动发送,http://example.com/folder/docs
因为这是在相同的上下文中。因为服务器不需要提示您输入凭据,您的浏览器甚至不会注意到它现在是一个不同的领域。