Apache2 - 仅在公共IP上显示身份验证,仅在测试服务器上显示

时间:2017-07-26 16:42:45

标签: apache .htaccess

我想为我的应用程序配置通用.htaccess文件以保护我的测试服务器。我想为来自公共IP的任何请求显示基本身份验证,仅在当前服务器正在测试时才会显示。

如何实现这个目标?我知道如何保护域名并排除一些IP:

AuthType Basic
AuthName "Please Log In"
AuthUserFile /some/path/.htpasswd
Require valid-user
Order deny,allow
Deny from all
Allow from 127.0.0.1
Satisfy any

但是,如果服务器是开发/测试,我怎么能让这个代码运行?我无法改变env变量。我考虑过检测域(我要保护的服务器在子域上),并将代码从上面放到某个if块中,但我不知道如何。

1 个答案:

答案 0 :(得分:1)

您使用mod_setenvif根据当前主机设置env变量并稍后使用auth

SetEnvIfNoCase Host ^sub\.domain\.com$ SECURED

AuthType Basic
AuthName "Please Log In"
AuthUserFile /some/path/.htpasswd
Require valid-user
Order Allow,Deny
Allow from 127.0.0.1
Deny from env=SECURED
Satisfy any