2011-08-05 73 views
9

我有一個語言特定的子域指向與我的網站根相同的目錄。我使用PHP來檢測它並顯示語言。.htpasswd在特定的子域

我希望僅在此子域上設置htpasswd。請記住,此子域沒有特定的物理目錄。因此,該聲明將與我的網站的根目錄在相同的htaccess中。

我需要htaccess的做到這一點:

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

感謝

回答

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 
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然後讓!沒有認證 - 需要取消它(這是!做什麼)

+0

就像一個魅力!非常感謝你!應該得到作者的確認:) –