首页 > 解决方案 > .htaccess setEnv as %{HTTP_HOST}

问题描述

is it possible to do the htaccess SetEnv with %{HTTP_HOST}?

i try it like this:

SetEnv HOSTNAME %{HTTP_HOST}

but this doesen't work. i tested it with setting it like

SetEnv HOSTNAME localhost.work

and thats working. So it's just my configuration whats not really operating.

Hope someone can give me a quick hint why this isn't working.

Thanks in advance.

标签: apache.htaccesssetenv

解决方案


SetEnv(mod_env) 用于设置简单的硬编码名称/值对。SetEnvIf如果要根据请求的元素设置 var,则需要使用(mod_setenvif)。

例如,要将 env var 设置为HTTP 请求标头HOSTNAME的值:Host

SetEnvIf Host "(.*)" HOSTNAME=$1

SetEnvIf指令有条件地设置环境变量...如果正则表达式 ( (.*)) 匹配第一个参数(即 HTTPHost标头),则它设置 env var。

Host指的是HostHTTP 请求头(与HTTP_HOST服务器变量相同)。(.*)是与之匹配的捕获正则表达式,并且$1是对该捕获模式的反向引用。

参考:
https ://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#setenvif


推荐阅读