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

时间:2015-07-05 15:11:14

标签: apache .htaccess subdomain .htpasswd

我已经花了几天的时间来研究如何根据我的子域设置不同的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配置,我会更好。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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