我有一个这样的结构:
/home
/home/dir1
/home/dir2现在,当有人访问/home时,系统会要求他输入用户名和密码(以表单形式),然后我用PHP语言为/home的其余文件设置会话信息。现在,/home/dir1和/home/dir2受htpasswd保护,但用户名和密码相同。我不希望用户在转到/home/dir1时再次输入他们的用户名和密码...另外,当我从/home注销时,我也想从/home/dir1注销。你能建议一下如何实现这一点吗?
发布于 2009-04-03 05:54:10
这应该是默认行为。
也就是说,如果您使用Apache和.htaccess文件来设置HTTP身份验证,则您应用于目录的任何规则也将应用于其子目录,并且浏览器将其视为全部登录。
如果你想让它以不同的方式运行,即如果你想让站点的某些部分被视为需要完全独立的登录,你可以在.htaccess中使用AuthName指令为每个部分指定一个'realm‘。More information here。但是,如果您不这样做,它将始终被视为同一登录的所有部分。
HTTP身份验证的问题是,没有办法“注销”,至少除非浏览器提供该功能。大多数浏览器允许您注销的唯一方式是结束浏览器会话(即关闭浏览器)。是的,一旦您这样做了,您将注销/home、/home/dir1、/home/dir2以及所有站点/域上的所有目录。
发布于 2009-05-27 15:59:48
在Apache中,只要两个文件夹具有相同的AuthName并且在同一站点上,它们就应该共享一个密码。
这两个目录可能都有一个.htaccess文件,如下所示:
AuthName "My Protect Folder"
AuthType basic
AuthUserFile /somewhere/htusers
require valid-userhttps://stackoverflow.com/questions/712665
复制相似问题