.htpasswd 在特定子域上
Posted
技术标签:
【中文标题】.htpasswd 在特定子域上【英文标题】:.htpasswd on specific subdomain 【发布时间】:2011-10-20 16:07:55 【问题描述】:我有一个特定于语言的子域,它指向与我的站点的根目录相同的目录。我使用 php 来检测它并显示语言。
我希望只在这个子域上设置一个 htpasswd。请记住,没有特定于该子域的物理目录。因此,该语句将与我的站点的根目录位于同一 htaccess 中。
我需要 htaccess 来做到这一点:
if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
谢谢
【问题讨论】:
【参考方案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
【讨论】:
以上是关于.htpasswd 在特定子域上的主要内容,如果未能解决你的问题,请参考以下文章