1

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

在我进行测试时,我想为对 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 错误。

4

1 回答 1

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

于 2012-07-24T13:06:07.503 回答