根据apache envvariables,有条件地要求HTTPauthentication

我的主机有我的网站(开发,舞台,生产)的多个部署。 我如何在我的htaccess文件中添加HTTP Auth头文件当且仅当他们设置的enviornmentvariables等于'dev'? (意思是他们设置了一个名为SITE_ENVIRONMENT的variables,这个variables可以是dev,stage或者prod,取决于你访问的是哪个站点。

PS。 我很熟悉需要通过htaccess以授权的方式进行授权,但在评估variables或根据结果编写块时,我完全失去了知识。

我不确定这是可能的。

理论上,你可以使用:

RewriteCond %{ENV:SITE_ENVIRONMENT} ^dev$ 

以确定你在哪个环境,但我想不出如何编写RewriteRule来强制一个基本的身份验证,除非你重定向到另一个页面,处理基本身份验证,并重置SITE_ENVIRONMENT变量“开发认证“ 或者其他的东西。

您可以使用SetEnvIf模式匹配域,并确定使用哪个环境。

 SetEnvIfNoCase Host ^dev.domain.com$ is_on_dev_site AuthType Basic AuthName "Protected Login" AuthUserFile /path/to/.htpasswd AuthGroupFile /dev/null Require valid-user Deny from env=is_on_dev_site #allow something like API usage to bypass SetEnvIf Request_URI "(/api/.(.*))$" allow Order deny,allow Allow from env=allow Satisfy any 

男子: http : //httpd.apache.org/docs/2.2/mod/mod_setenvif.html