我在一个系统上安装了 Apache 1.3 和 Apache 2.2,它们使用不同的端口(444、445)。我对这两个端口都使用了 444 的 Apache 身份验证信息。当我想从端口 444 转到 445 时,浏览器会再次询问我用户名/密码。我想在两个 Apache 之间共享会话身份验证信息。这意味着,如果我输入 444 的密码,它不会再次询问我密码并使用 444 会话。我对第二个 Apache(444)的文件夹使用了以下 .htaccess:
AuthName "Restricted"
AuthType Basic
AuthUserFile /var/Apache444/users
AuthGroupFile /etc/Apache444/groups
require group admin
答案1
我觉得浏览器将识别server:444
和server:445
为两个不同的服务器并且不会发送身份验证凭据。
检查你的 HTTP 请求标头是否存在类似内容:
Authorization:Basic HERESOMEBASE64ENCODEDCHARS=
通常,浏览器会在每个请求上发送此用户名和密码,服务器会检查每个请求的凭据的有效性(以明文形式,仅经过 base64 编码,因此,在理想情况下,应该只与 SSL 一起使用)。重要的是会议不在服务器端进行管理,没有会议。
这意味着浏览器将这些凭据存储在缓存中,并在向同一服务器发出请求时自动决定添加这些凭据。
如果浏览器没有将两个端口上的两个 Apache 服务器视为同一台服务器,它将永远不会发送凭据...永远不会。