2012-07-23 104 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错误,虽然,特别是因为它只是发生了,我想密码保护的子域。