htaccess-htpasswd:不同的AuthUserFile取决于子域



我花了几天时间研究如何根据我的子域使用不同的AuthUserFile路径。

为什么我有这个问题:我的网站的管理员访问权限受htaccess-htpasswd保护。我现在用比特桶管理回购,并配置自动部署。由于这个部署系统,我需要为每个站点实例使用相同的文件:假设我有:

local.mysite.com
staging.mysite.com
www.mysite.com

现在的问题是,每个"站点"的AuthUserFile绝对路径不同,所以我需要根据子域来定义它。

我试图做的事情:我在考虑使用这样的If语句:

<If "Host == 'local.mysite.com'">
AuthUserFile
</If>

但我运行的是apache2.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配置,那我会更好。。

有什么想法吗?

没关系,这似乎几乎是不可能的,所以我只会创建一个脚本,在部署时自动生成.htaccess文件,并将.htacccess放在.gitignore中,这样我在尝试拉取时就不会发生冲突。

最新更新