我可以在我的apache conf中设置环境variables,并使用它们在htaccess重写?

我们有一个定义了一堆envvariables的apache conf,像这样:/etc/apache2/conf-enabled/env.conf

SetEnv AWS_BUCKET "MY BUCKET" 

我想在我的重写中使用该variables,AWS_BUCKET像这样:

 RewriteRule ^wp-content/uploads/(.*)$ https://s3.amazonaws.com/%{ENV:AS3CF_BUCKET}/wp-content/uploads/$1 [P] 

这个桶根据我们所在的服务器环境而变化,例如:prod,staging,dev和local。

哪个不行 我读了这些重写后调用SetEnv,所以我应该使用SetEnvIf来设置variables。 但是,使用SetEnvIf仍然不起作用,因为不仅不能检查是否设置了AWS_BUCKET,而且仍然无法读取该variables,因为在重写和SetEnvIf被调用之前没有设置该variables。

SetEnvIf还要求在htaccess文件中设置所需的variables,这是我做不到的,因为这样做的目的是提供一个dynamic环境特定的解决scheme。

有没有办法从conf文件中使用setvariables,还是需要将variables设置为系统variables?

编辑 – 我不幸的是没有能力添加或修改Apache的configuration。 服务器由另一个部门运行,该部门在构build和部署过程中使用提供的variables作为模板注入该文件。

所以我必须处理我也有访问,这是networking应用程序和htaccess文件。 我不确定他们会为我改变这个过程。

这只适用于由于处理指令的方式而使用SetEnvIf而不是SetEnv 。 所以它需要使用类似的东西来设置:

 SetEnvIf Request_URI ^ AWS_BUCKET =“MY BUCKET”