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

Nginx正则创建变量实现.com转.org域名跳转并保留请求路径

Nginx实现保留子域名和URI的域名后缀跳转

解决方案:使用map指令创建替换后的域名变量

Nginx的map指令可以在全局http块中定义变量,通过正则匹配将原域名转换为目标域名,配置简洁且易于维护,完全符合你的需求。

1. 在http块中添加map配置

在Nginx主配置文件(如nginx.conf)的http块内添加以下内容:

map $host $new_host {
    # 匹配所有以.com结尾的域名,替换后缀为.org
    ~^(.*)\.com$ $1.org;
}

这个规则会捕获$host中.com之前的所有内容(包括子域名),并将后缀替换为.org。

2. 修改server块的跳转规则

将你原有的server块中的location配置替换为:

server_name domain.com *.domain.com;
root /var/www/html/domain.com/public/www;
index index.php index.html index.htm index.txt index;

location / {
    return 302 $scheme://$new_host$request_uri;
}

效果验证

当请求https://foo.bar.domain.com/file时:

  • $host的值为foo.bar.domain.com
  • map规则匹配后,$new_host的值为foo.bar.domain.org
  • 最终重定向地址为https://foo.bar.domain.org/file,完全保留了子域名和请求URI。

为什么选择map而非rewrite?

map指令的配置逻辑直观,后续维护人员一眼就能理解是做域名后缀替换,相比嵌套的rewrite规则或伪location处理,结构更清晰,降低了维护成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:39:21