.htaccess提示输入密码

use*_*259 7 apache .htaccess web

有没有办法设置一个.htaccess文件来提示每次验证?示例:我打开浏览器选项卡,转到受保护的URL,我被提示输入pw.关闭选项卡(主浏览器仍然打开)并重复上述操作并再次提示输入pw.除非我关闭浏览器,否则不会发生这种情况.也许这是一个缓存的东西?

这是我到目前为止所拥有的:

AuthType Basic
AuthName "myName"
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd"
require valid-user
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Kub*_*tek 6

实际上它正在以这种方式工作(简化):

  • 浏览器在没有凭据的情况下向您的服
  • Apache指定了响应403错误,因为"需要有效用户"
  • 浏览器提示输入用户名和密码
  • 浏览器再次发送请求,此时提供凭据
  • Apache根据AuthUserFile验证凭据并相应地设置"valid-user"
  • 如果一切正常 - 用200状态代码输出数据
  • 接收200个代码缓存的浏览器使用相关域的凭据,直到浏览器会话到期为止

如您所见 - 问题出现在浏览器中.您无法强制浏览器忘记它用于域的密码.通常你不想 - 例如,如果受密码保护的页面包含图像 - 浏览器将需要每个下载图像的用户名和密码.

但是,您可以尝试一些提示:

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