特定子域上的.htpasswd

时间:2011-08-05 08:23:56

标签: .htaccess subdomain .htpasswd

我有一个特定于语言的子域,它指向与我的站点相同的目录。我使用PHP来检测它并显示语言。

我希望仅在此子域上设置htpasswd。请记住,没有特定于此子域的物理目录。因此,该语句将与我站点的根目录在同一个htaccess中。

我需要htaccess才能这样做:

if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic

由于

2 个答案:

答案 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