密码用.htaccess保护cname子域名?

时间:2012-07-23 15:36:49

标签: apache .htaccess password-protection cname setenv

我正在尝试构建并测试“m”。我正在研究的网站的子域名。 “m.domain.com”只是“domain.com”的一个cname,将用于设置服务器端布尔值,因此该站点的移动版本将使用不同的css和脚本提供完全相同的页面。 / p>

在我测试时,我想要对m.domain.com发出的所有请求都要求密码。我在环境变量解决方案上尝试了几种.htaccess变体,这就是我现在所拥有的:

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”正常显示。 “m.domain.com”按预期提示输入密码。但是,一旦输入,服务器就会在任何请求中返回500错误。

1 个答案:

答案 0 :(得分: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错误,特别是因为它只发生在我想要密码保护的子域中。