在 apache httpd.conf 中设置环境变量的问题

在 apache httpd.conf 中设置环境变量的问题

我试图弄清楚为什么我可以使用 SetEnv 在 httpd.conf 中设置字符串文字:

SetEnvIf anothertest ^$ something=sometext

但我无法分配另一个变量的内容:

SetEnvIf anothertest ^$ something=$QUERY_STRING

第二个结果是 $QUERY_STRING,而不是取消引用变量。

更新:

上面的代码是为了解决我遇到的问题而编写的。最终目标是让 SetEnvIf 正常工作,以便我可以使用 Access-Control-Allow-Origin 设置多个域。我尝试为域https://localhost:8443和设置它https://10.1.40.75:8443。下面是我目前拥有的无法正常工作的代码。

<ifModule mod_headers.c>
SetEnvIf Origin "^http(s)?://(.+\.)?(localhost:8443|10\.1\.40\.75:8443)$" origin_is=$0
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
Header set Access-Control-Allow-Credentials true
</ifModule>

答案1

这是因为 Apache 不支持该mod_setenvif模块:http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html

如果您让我们知道您想要实现的目标,也许我们其中一个人可以建议一个替代解决方案?

相关内容