如何使用 SetEnv 读取 Apache 中的变量?

如何使用 SetEnv 读取 Apache 中的变量?

我想设置一个包含 DOC_ROOT 信息的环境变量,但没有任何内容

SetEnv PROJECT_BASE %{ENV:DOC_ROOT}
SetEnv LAYOUT_HOME  %{ENV:PROJECT_BASE}"/html/app/wordpress/"

然后就可以在 php 中访问 LAYOUT_HOME

我该怎么做?上面的方法对我来说不起作用...

问题是不同环境下的基本路径不同=/

答案1

SetEnv 是 mod_env 的一个指令,mod_env 不支持 %{ENV:var}——只有 mod_rewrite 才支持。别忘了 apache 是模块化的,模块定义自己的指令。你可以像这样使用 mod_rewrite 来做到这一点:

 RewriteRule .* -  [E=PROJECT_BASE:%{ENV:DOC_ROOT}]
  ... etc

我必须问一下,你到底想做什么?一定有更好的方法。我想不出任何理由在 apache 而不是 php 中定义你的 LAYOUT_HOME 变量。

答案2

使用getenv文档在这里

它将获取任何环境变量,只需使用它来获取您在 Apache 上设置的环境变量。

相关内容