You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx如何使用map指令提取$http_host请求头中的主域名部分

Nginx map指令提取host主域名的正确配置

原有map配置失效的核心原因是正则捕获组规则错误:~^www1\.(?<this_dom>)$中的命名捕获组内部没有匹配规则,仅能匹配www1.后无内容的极端场景,无法捕获到后面的主域名段,因此得到空值。

map块需要放在Nginx配置的http层级下(注意map块不能放入server块内,否则会报语法错误),正确写法如下:

map $http_host $this_dom {
    default $http_host;
    # 写法1:使用数字捕获组,更简洁
    ~*^www1\.(.*)$ $1;
    # 写法2:使用命名捕获组,可读性更好,二者选其一即可
    # ~*^www1\.(?<captured_dom>.*)$ $captured_dom;
}

该配置和你当前在用的if实现逻辑完全一致,匹配时忽略大小写,只要host以www1.开头,就会将后面的所有内容赋值给$this_dom变量,非匹配场景保留原始host值。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:57:02