【问题标题】:.htpasswd on specific subdomain.htpasswd 在特定子域上
【发布时间】:2011-10-20 16:07:55
【问题描述】:
我有一个特定于语言的子域,它指向与我的站点的根目录相同的目录。我使用 PHP 来检测它并显示语言。
我希望只在这个子域上设置一个 htpasswd。请记住,没有特定于该子域的物理目录。因此,该语句将与我的站点的根目录位于同一 htaccess 中。
我需要 htaccess 来做到这一点:
if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
谢谢
【问题讨论】:
标签:
.htaccess
subdomain
.htpasswd
【解决方案1】:
这应该可行:
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
Require valid-user
SetEnvIf Host yourdomain.com secure_content
Order Allow,Deny
Allow from all
Deny from env=secure_content
Satisfy Any
我和@Anders Lindahl 在同一条路线上,但显然在 SetEnvIf 中没有“不”,所以我不得不将它更改为允许所有并拒绝设置了 env-var 的那些。
他的解决方案也有效,但您必须先 SetEnv no-auth-required 1 然后让 !no-auth-required 取消设置它(这就是 ! 所做的)
【解决方案2】:
这未经测试,但可能有效或提示您在 Apache 文档中查找的内容:
SetEnvIf Host ^mysubdomain.domain.com !no-auth-required
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
Require valid-user
Allow env no-auth-required
Satisfy Any