我正在尝试通过.htaccess文件保护带有摘要式身份验证的文件夹:
AuthType Digest
AuthName "Restricted Area"
AuthUserFile /web/htdocs/www.domain.com/.../.htdigest
Require valid-user
我使用命令“htdigest”创建了密码文件。 一切都在我的本地服务器上工作正常...但不在我的远程服务器(托管网站)上! 即使我输入了正确的密码,浏览器也会显示登录面板!
在远程服务器上,PHP作为CGI而不是作为Apache的模块运行...应该是这个原因吗?有一些解决方法吗?
.htaccess的基本身份验证在同一台远程服务器上运行正常!
答案 0 :(得分:0)
如果脚本作为CGI运行,这意味着它作为本地用户运行,而不是作为www运行,这可能是问题,是的。 CGI是唯一的选择吗?
答案 1 :(得分:0)
上面的代码缺少AuthDigestDomain指令,关于the documentation说明:
此指令应始终如此 指定并至少包含 (此集合)此空间的根URI。 省略这样做会导致这样做 客户端发送授权 发送给此的每个请求的标头 服务器。除了增加大小 请求,它也可能有一个 如果对性能有不利影响 AuthDigestNcCheck已开启。
但是,我已经通过启用Apache模块mod_auth_digest
而不是模块mod_digest
来解决了这个问题。