.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