我有一个特定于语言的子域,它指向与我的站点相同的目录。我使用PHP来检测它并显示语言。
我希望仅在此子域上设置htpasswd。请记住,没有特定于此子域的物理目录。因此,该语句将与我站点的根目录在同一个htaccess中。
我需要htaccess才能这样做:
if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
由于
答案 0 :(得分:19)
这应该有效:
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取消设置(这是!
所做的)
答案 1 :(得分: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