nginx实现域名跳转的几种方式

 更新时间:2026年01月15日 09:44:39   作者:新节  
本文介绍了Nginx实现域名跳转的几种常用方式,包括301永久重定向,302临时重定向,HTTPS强制跳转,正则匹配跳转,具有一定的参考价值,感兴趣的可以了解一下

在日常项目中,我们经常会遇到这样的需求或情况:

  • 访问 http://abc.com 时,强制跳到 https://www.abc.com,上面域名发生变化。
  • 旧域名 old.com 迁移到 new.com,用户访问旧域名时需要自动跳转。
  • 为了 SEO 统一入口,abc.comwww.abc.com 最终都要跳到同一个主域名。

对于域名跳转,我们可以在 Web 服务器层实现 也可以在 应用层中实现。下面我主要讲解在Web 服务层 Nginx中的实现方式。

这些场景在 Nginx 中都可以很优雅地实现,如下:

1. 301 永久重定向(推荐 SEO 场景)

如果网站更换了域名,或者需要强制统一入口,可以用 301 永久重定向。

server {
    listen 80;
    server_name old.com;

    # 永久重定向到新域名,并保留路径和参数
    return 301 https://new.com$request_uri;
}

📌 说明:

  • 301:告诉浏览器和搜索引擎,这是永久跳转,搜索引擎会更新索引。
  • $request_uri:保留原路径和查询参数,比如 /about?from=123

示例效果:访问 http://old.com/about → 自动跳到 https://new.com/about

如下图演示所示:

我图中的演示是本地项目跳百度链接的 demo,实际项目中可以根据实际情况进行配置。

我本地项目的配置:

server {
    listen 80;
    server_name localhost;

    # 永久重定向到新域名
    return  301 https://www.baidu.com;
}

2. 302 临时重定向(推荐活动页/短链场景)

如果只是临时跳转(例如活动推广、临时域名),可以使用 302

server {
    listen 80;
    server_name promo.old.com;

    # 临时跳转,不会影响搜索引擎索引
    return 302 https://event.new.com$request_uri;
}

📌 说明:

  • 302:临时跳转,搜索引擎不会更新索引。
  • 常用于:活动页、营销短链。

3. 强制 HTTPS 跳转

为了保证安全,通常会把所有 HTTP 请求跳转到 HTTPS。

server {
    listen 80;
    server_name www.abc.com;

    return 301 https://www.abc.com$request_uri;
}

📌 效果:访问 http://www.abc.com/login → 自动跳到 https://www.abc.com/login

4. 去掉或强制www

很多公司会要求所有请求统一成 www.abc.comabc.com,这样可以避免 SEO 重复收录。

去掉www→ 跳到裸域名

server {
    listen 80;
    server_name www.abc.com;

    return 301 https://abc.com$request_uri;
}

强制加www

server {
    listen 80;
    server_name abc.com;

    return 301 https://www.abc.com$request_uri;
}

5. 正则匹配更复杂的跳转

有时候旧域名和新域名的路径不一样,可以用正则匹配。

server {
    listen 80;
    server_name old.com;

    location /oldpath/(.*) {
        return 301 https://new.com/newpath/$1;
    }
}

📌 效果:访问 http://old.com/oldpath/123 → 跳到 https://new.com/newpath/123

6. 总结

在日常项目中,推荐优先使用 Nginx 配置跳转,因为:

  • 配置简单,性能高,不会增加应用层压力。
  • 301/302 语义明确,对 SEO 和用户体验都更友好。
  • 可以灵活控制是否保留路径和参数。

常见实践

  • SEO & 域名统一 → 用 301
  • 活动页 & 临时跳转 → 用 302
  • 安全要求 → 强制 HTTPS

7. 常见问题

1. 301 和 302 的区别

用户体验 来看:

  • 浏览器访问时,都会立即跳转到新地址,看起来没什么差别(所以你测试时感觉一样)。

底层逻辑 来看:

  • 301 永久重定向

    • 告诉浏览器/搜索引擎:这个资源以后都在新地址了。
    • 浏览器可能会 缓存跳转规则,下次再访问旧域名时,直接跳过请求。
    • 搜索引擎会更新索引,把权重转移到新域名。
  • 302 临时重定向

    • 告诉浏览器/搜索引擎:这是临时跳转,原地址以后还可能恢复。
    • 浏览器一般不会长期缓存规则。
    • 搜索引擎不会把权重转移到新域名。

📌 总结:

  • SEO 场景(换域名/统一入口) → 用 301
  • 临时活动 / 营销页 → 用 302
  • 用户体验基本一样,主要区别在 缓存 & 搜索引擎

2.return 302 https://event.new.com$request_uri;是否是固定写法

这不是唯一写法,但这是最常见、最简洁的写法。

  • return 302 → 表示返回一个 302 临时重定向 状态码。
  • https://event.new.com → 目标域名。
  • $request_uri → 变量,代表原始请求的路径和参数。

举个例子

用户请求:

http://promo.old.com/sale?from=wechat

Nginx 配置:

return 302 https://event.new.com$request_uri;

跳转结果:

https://event.new.com/sale?from=wechat

只跳到首页(不保留路径参数)

return 302 https://event.new.com;

👉 无论用户访问什么路径,都直接跳到 https://event.new.com 首页。

路径改写(比如 old → new)

location /oldpath/(.*) {
    return 302 https://event.new.com/newpath/$1;
}

👉 http://old.com/oldpath/123https://event.new.com/newpath/123

✅ 所以:

  • return 302 https://event.new.com$request_uri; 只是最常见的写法(保留路径和参数)。
  • 你完全可以根据项目需要,改成只跳首页、改写路径、或者换成 301。

到此这篇关于nginx实现域名跳转的几种方式的文章就介绍到这了,更多相关nginx 域名跳转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx配置history模式的使用小结

    nginx配置history模式的使用小结

    本文详细介绍了在Nginx服务器中配置history模式的方法,具体通过使用try_files指令来实现,这种配置方式主要适用于单页应用,可以确保无论访问什么URL,服务器总是返回同一个HTML文件,然后由前端路由来处理不同的页面显示
    2024-10-10
  • Nginx中break与last的区别详析

    Nginx中break与last的区别详析

    这篇文章主要给大家介绍了关于Nginx中break与last区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • nginx location中多个if里面proxy_pass的方法

    nginx location中多个if里面proxy_pass的方法

    这篇文章主要介绍了nginx location中多个if里面proxy_pass的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Nginx配置动态代理后通过curl访问报403问题

    Nginx配置动态代理后通过curl访问报403问题

    本文主要介绍了Nginx配置动态代理后通过curl访问报403问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 深入理解nginx的access.log文件

    深入理解nginx的access.log文件

    NGINX软件会把每个用户访问网站的日志记录到指定的日志文件里,供网站者分析用户的浏览行为,本文主要介绍了nginx的access.log文件,感兴趣的可以了解一下
    2023-09-09
  • nginx做白名单和限流的完整过程

    nginx做白名单和限流的完整过程

    ​ 我们都知道nginx里面是可以用lua脚本做一些稍微复杂些的逻辑处理的,要使用lua脚本需要编译lua解释器,时间有限我直接用了openresty,它集成了lua和nginx,这篇文章主要介绍了nginx做白名单和限流,需要的朋友可以参考下
    2024-02-02
  • 如何配置nginx作为静态文件托管服务器

    如何配置nginx作为静态文件托管服务器

    这篇文章主要介绍了如何配置nginx作为静态文件托管服务器的相关资料,下载nginx在windows上是个压缩包,解压后,使用命令行输入nginx进行启动,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • nginx中的正则表达式及location和rewrite总结

    nginx中的正则表达式及location和rewrite总结

    rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向,这篇文章主要介绍了nginx中的正则表达式及location和rewrite总结,需要的朋友可以参考下
    2023-12-12
  • 使用nginx解决前端js下载跨域问题

    使用nginx解决前端js下载跨域问题

    订单系统增加附件预览,下载的功能,但是这个附件是客户推单时推送过来的,文件连接是类似oss连接,但是是客户的域名,所以导致跨域问题,本文小编将给大家介绍如何用nginx解决前端js下载跨域问题,需要的朋友可以参考下
    2023-10-10
  • Nginx服务器中限制连接数与限制请求的模块配置教程

    Nginx服务器中限制连接数与限制请求的模块配置教程

    这篇文章主要介绍了Nginx服务器中限制连接数与限制请求的模块配置教程,分别为limit conn模块与limit req模块的相关用法讲解,需要的朋友可以参考下
    2016-01-01

最新评论