Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Apache环境变量语法是如何工作的?_Apache_Environment Variables - Fatal编程技术网

这个Apache环境变量语法是如何工作的?

这个Apache环境变量语法是如何工作的?,apache,environment-variables,Apache,Environment Variables,我已经看到了一系列在htaccess中动态设置请求源标题的示例,这些示例大致如下所示: SetEnvIf Origin "^http(s)?://(.+\.)?(example\.com|example\.org)$" REQUEST_ORIGIN=$0 Header always set Access-Control-Allow-Origin %{REQUEST_ORIGIN}e env=REQUEST_ORIGIN 然而,我似乎在任何地方都找不到第二行的语法解释。我在这里还找到了一个语法类

我已经看到了一系列在htaccess中动态设置请求源标题的示例,这些示例大致如下所示:

SetEnvIf Origin "^http(s)?://(.+\.)?(example\.com|example\.org)$" REQUEST_ORIGIN=$0
Header always set Access-Control-Allow-Origin %{REQUEST_ORIGIN}e env=REQUEST_ORIGIN
然而,我似乎在任何地方都找不到第二行的语法解释。我在这里还找到了一个语法类似的示例,但同样没有解释它是如何工作的:

具体来说,我想知道
%{REQUEST_ORIGIN}e
env=REQUEST_ORIGIN


这些东西都有什么作用?前者似乎对变量做了一些事情,但大括号语法是如何工作的,以及为什么后面的
e

第二行仅在设置了REQUEST\u Origin变量时才设置访问控制允许原点

关于
%{REQUEST_ORIGIN}e
它告诉我们需要从环境变量中获取值

基本上,这两行一起检查有效/安全的来源,如果检查通过,则将CORS头设置为正确的值

文档 Header指令后面可能会有一个附加参数,该参数可以是以下任一参数:

env=[!]varname

当且仅当环境变量varname存在时,才会应用该指令。A.在varname前面,会反转测试,因此该指令仅在varname未设置时适用

至于
e
语法:

%{VARNAME}e环境变量VARNAME的内容

参考资料:


谢谢。搜索“apache环境变量”可以得到mod_env文档,这些文档毫无用处。显然,mod_headers docs就是我要找的。我注意到,在大括号中包含的所有变量在大括号结束后也有一个字母,比如
%{Referer}I
,这个字母(
I
)有什么意义吗?Apache2手册中没有提到它。@AnthonyK根据apache文档,这些“i”是来自请求头的值。此外,没有一个地方可以记录所有这些内容,它们似乎是每个模块的设置。根据apache配置中的哪个部分,尝试查看特定的模块文档。