2012-07-23 140 views
1

我正在嘗試構建和測試「m」。我正在處理的網站的子域名。 「m.domain.com」只是「domain.com」的一個cname,將用於設置服務器端布爾值,因此該站點的移動版本將使用完全相同的頁面,只是使用不同的css和腳本。使用.htaccess密碼保護cname子域名?

雖然我測試,我想需要到m.domain.com提出的所有要求的口令。通常

SetEnvIfNoCase Host m\.domain\.com is_mobile 

AuthType basic 
AuthName "Mobile site" 
AuthUserFile ".htpasswd" 
Require valid-user 

Order allow,deny 
Allow from all 
Deny from env=is_mobile 
Satisfy any 

有了這個代碼,「domain.com」和「www.domain.com」顯示:我已經試過在環境變量的解決方案的幾個變種的.htaccess,這就是我現在所擁有的。 「m.domain.com」會按照預期提示輸入密碼。但是,一旦輸入,服務器就會在任何請求中返回500錯誤。

回答

1

那麼,事實證明,一個小倒置和重新排序的伎倆。

SetEnvIfNoCase Host ^(www\.)domain\.com$ not_mobile 

AuthType basic 
AuthName "Mobile site" 
AuthUserFile ".htpasswd" 

Order deny,allow 
Deny from all 
Allow from env=not_mobile 
Require valid-user 
Satisfy any 

我還是想知道爲什麼其他配置創建的500錯誤,雖然,特別是因爲它只是發生了,我想密碼保護的子域。