apache - .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.
解决方案
SetEnv
(mod_env) 用于设置简单的硬编码名称/值对。SetEnvIf
如果要根据请求的元素设置 var,则需要使用(mod_setenvif)。
例如,要将 env var 设置为HTTP 请求标头HOSTNAME
的值:Host
SetEnvIf Host "(.*)" HOSTNAME=$1
该SetEnvIf
指令有条件地设置环境变量...如果正则表达式 ( (.*)
) 匹配第一个参数(即 HTTPHost
标头),则它设置 env var。
Host
指的是Host
HTTP 请求头(与HTTP_HOST
服务器变量相同)。(.*)
是与之匹配的捕获正则表达式,并且$1
是对该捕获模式的反向引用。
参考:
https ://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#setenvif
推荐阅读
- flutter - 删除滑块的默认边距
- django - Cloud Foundry 上托管的 Django 请求中的 Gunicorn Worker 超时
- tensorflow - 如何冻结设备特定的保存模型?
- javascript - 预填充的日期,不是第一次加载,而是之后每次加载
- apache - 使用其他端口的 asp.net 核心在同一 apache 服务器上的多个应用程序
- c# - typeof().GetTypeInfo().Assembly 与 typeof().Assembly
- python - 在 Python3.5 asyncio 中等待后无法访问 Http 请求数据
- angular - ../shared-library/src/index.ts 中的 Angular 10 错误
- angularjs - 错误:[$injector:unpr] 未知提供者:nxProvider <- nx <- adminController
- mocha.js - 无法使用 cypress 定位元素