SetEnv继承自主机htaccess

时间:2016-10-06 16:07:49

标签: apache .htaccess

使用我的htaccess文件,我正在设置此环境变量

SetEnv CI_ENV development

但实际上我想从主机继承环境变量。像

这样的东西
SetEnv CI_ENV %{CI_ENV}

我试过了:

SetEnv CI_ENV %{ENV:CI_ENV}

但这似乎不起作用。

原因:我正在使用带有PHP / Apache容器的docker。试图将配置值传递给它,所以我想在可能的情况下在htaccess文件中没有任何硬编码。

我目前的解决方法是在文件中包含一个带有$ CI_ENV的.htaccess.config文件,然后使用脚本替换env值,但不必这样做。

1 个答案:

答案 0 :(得分:1)

如果您使用mod_setevif,则无需重新声明env变量。

在root .htaccess中使用此指令:

SetEnvIf Host ^ CI_ENV=development

然后在子目录中的任何位置使用它,而无需重新开发它。

编辑:根据以下评论,OP似乎试图将系统(shell)env变量传递给Apache。

对于那个PassEnv指令可以这样使用:

# pass system env CI_ENV to Apache
PassEnv CI_ENV

现在CI_ENV将作为各种Apache指令中的env变量提供。