.htaccess setEnv 为 %{HTTP_HOST}
.htaccess setEnv as %{HTTP_HOST}
是否可以使用 %{HTTP_HOST}
执行 htaccess SetEnv
?
我这样试:
SetEnv HOSTNAME %{HTTP_HOST}
但这不起作用。
我通过将其设置为
来测试它
SetEnv HOSTNAME localhost.work
这就是工作。所以这只是我的配置没有真正运行。
希望有人能快速提示我为什么这不起作用。
提前致谢。
SetEnv
(mod_env) 用于设置简单的硬编码 name/value 对。如果要根据请求的元素设置 var,则需要使用 SetEnvIf
(mod_setenvif)。
例如,将环境变量 HOSTNAME
设置为 Host
HTTP 请求的值 header:
SetEnvIf Host "(.*)" HOSTNAME=
SetEnvIf
指令有条件地设置环境变量...如果正则表达式 ((.*)
) 匹配第一个参数(即 HTTP Host
header ) 然后它设置 env var.
Host
指的是 Host
HTTP 请求 header(与 HTTP_HOST
服务器变量相同)。 (.*)
是匹配的捕获正则表达式,
是对此捕获模式的反向引用。
参考:
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#setenvif
是否可以使用 %{HTTP_HOST}
执行 htaccess SetEnv
?
我这样试:
SetEnv HOSTNAME %{HTTP_HOST}
但这不起作用。 我通过将其设置为
来测试它SetEnv HOSTNAME localhost.work
这就是工作。所以这只是我的配置没有真正运行。
希望有人能快速提示我为什么这不起作用。
提前致谢。
SetEnv
(mod_env) 用于设置简单的硬编码 name/value 对。如果要根据请求的元素设置 var,则需要使用 SetEnvIf
(mod_setenvif)。
例如,将环境变量 HOSTNAME
设置为 Host
HTTP 请求的值 header:
SetEnvIf Host "(.*)" HOSTNAME=
SetEnvIf
指令有条件地设置环境变量...如果正则表达式 ((.*)
) 匹配第一个参数(即 HTTP Host
header ) 然后它设置 env var.
Host
指的是 Host
HTTP 请求 header(与 HTTP_HOST
服务器变量相同)。 (.*)
是匹配的捕获正则表达式, 是对此捕获模式的反向引用。
参考:
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#setenvif