Apache .htaccess提示输入密码

Apache .htaccess提示输入密码,apache,.htaccess,web,Apache,.htaccess,Web,有没有办法将一个人的.htaccess文件设置为每次都提示进行身份验证?示例:我打开浏览器选项卡,转到受pw保护的url,系统会提示我输入pw。关闭选项卡(主浏览器仍处于打开状态),重复上述操作,并再次提示输入pw。除非关闭浏览器,否则不会发生这种情况。也许这是缓存的问题 以下是我目前掌握的情况: AuthType Basic AuthName "myName" AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd" req

有没有办法将一个人的.htaccess文件设置为每次都提示进行身份验证?示例:我打开浏览器选项卡,转到受pw保护的url,系统会提示我输入pw。关闭选项卡(主浏览器仍处于打开状态),重复上述操作,并再次提示输入pw。除非关闭浏览器,否则不会发生这种情况。也许这是缓存的问题

以下是我目前掌握的情况:

AuthType Basic
AuthName "myName"
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd"
require valid-user

提前感谢。

实际上它是这样工作的(简化):

  • 浏览器向您的服务器发送请求时不带凭据
  • Apache响应403错误,因为指定了“需要有效用户”
  • 浏览器提示输入用户名和密码
  • 浏览器再次发送请求,这一次提供了凭据
  • Apache根据AuthUserFile验证凭据,并相应地设置“有效用户”
  • 如果一切正常-输出状态代码为200的数据
  • 接收200个代码的浏览器将缓存相关域的已用凭据,直到浏览器会话过期
正如您所看到的,问题在于浏览器。您不能强制浏览器忘记它用于域的密码。通常情况下,您不想这样做—例如,如果受密码保护的页面包含图像—浏览器将要求每个下载的图像使用用户名和密码

不过,您可以尝试以下一些技巧:

  • 您可以编写自己的Apache授权处理程序,只在用户每秒访问页面时授权用户;但这真的很难做到
  • 您可以使用某种基于表单的身份验证(在php或asp.net脚本中),而不是依赖http身份验证;这种方式很灵活
  • 您可以做一个技巧,每次访问受保护的页面时,某种脚本会更改
    passwd
    文件中的密码;然后为每个用户提供两个密码,并在每次请求时切换密码;这样,浏览器总是记住“错误”的密码;这似乎很疯狂,但这是我能想到的最简单的解决方案:-)