Apache .htaccess技巧只能为所有子域validation一次?

我在.htaccess文件中使用这样的东西来限制对网站的访问:

AuthUserFile /some/directory/.passwd AuthGroupFile /dev/null AuthName EnterPassword AuthType Basic require valid-user 

这工作正常,但用户被要求authentication每次子域更改,如user1.mywebsite.com,user2.mywebsite.com或只是mywebsite.com

有没有办法告诉Apache2,当一个用户对一个子域进行身份validation时,它应该授予他访问所有其他人的权限?

不可能; 您可以使用一个.htaccess文件来授予对您的目录树中具有相同凭据的任何内容的访问权限,但是每个唯一子域名都需要进行身份validation。

正如Benny所指出的那样,您需要以某种forms的基于会话的身份validation来实现这一点。

通过http基本authentication规范来做这样的事情是不可能的。 境界bob.example.com和elisa.example.com是两个不同的保护空间,几乎每个浏览器都将它们视为两个不同的领域,不同的领域应该支持不同的authentication凭证。

如何,有解决scheme – HTTP摘要validation。 它允许您指定保护空间中的所有URL。 但是,它不允许通配符的子域名,所以在打了十几个域名之后,它就变成了一个PITA。 示例configuration。

 <Location /> AuthType Digest AuthName "teh realm" AuthDigestAlgorithm MD5 AuthDigestDomain / http://domain.com/ http://subdomain.domain.com/ AuthDigestQop auth AuthDigestProvider file AuthUserFile /etc/apache2/.htpasswd-digest </Location> 

国际海事组织,你唯一的select是编写自己的FastCGI身份validation谁谁的用户cookies,谁允许通配符的子域名。 如果你有几个领域,它更容易坚持消化。

是否所有的子域都从同一个文档根目录的子文件夹中提供? 如果是这样的话,那么似乎将该身份validation放在主文档根目录的.htaccess中,可能会减轻重复的身份validation。

作为替代scheme(虽然可能需要为用户开发一些工作),但也可以尝试基于会话的身份validation。

http://httpd.apache.org/docs/2.3/mod/mod_session.html