我已经花了几天的时间来研究如何根据我的子域设置不同的AuthUserFile路径。
为什么我会遇到这个问题: 我的网站的管理员访问受到htaccess - htpasswd的保护。我现在用bitbucket管理repo并正在配置自动部署。由于这个部署系统,我需要为每个站点实例使用相同的文件:假设我有:
local.mysite.com
staging.mysite.com
www.mysite.com
现在的问题是每个“站点”的AuthUserFile绝对路径都不同,所以我需要根据子域来定义它。
我尝试做什么: 我正在考虑使用If语句:
<If "Host == 'local.mysite.com'">
AuthUserFile
</If>
但是我正在运行apache 2.2所以不可用。
然后我考虑使用看起来像的东西:
SetEnvIf HOST ^local\.mysite\.com$ ENV_LOCAL
<IfDefine ENV_LOCAL>
AuthType Basic
AuthName "Password required"
AuthUserFile /my/local/path/.htpasswd
Require valid-user
</IfDefine>
但显然,IfDefine无法读取SetEnvIf变量。
现在我被封锁了,找不到任何可以帮助我上网的东西。 如果我不必更改apache配置,我会更好。
有什么想法吗?
答案 0 :(得分:0)
没关系,似乎几乎不可能,所以我将创建一个脚本,在部署时自动生成.htaccess文件并将.htaccess放在.gitignore中,这样我在尝试时就不会有冲突拉。