Nginx实现前端重定向的三种方法介绍

 更新时间:2025年09月30日 09:20:06   作者:檀越@新空间  
这篇文章主要为大家详细介绍了Nginx实现前端重定向的三种方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

需求:

http://127.0.0.1/test-chat/orig_docs/80a4e16a-6945-4fa0-bc8a-2b9c9c6eacb7

使用 nginx 转为下面的请求

http://127.0.0.1/orig_docs/80a4e16a-6945-4fa0-bc8a-2b9c9c6eacb7

可以使用 nginx 的rewritelocation指令来实现这个 URL 转换。以下是几种配置方式:

方法 1:使用 rewrite 指令

server {
    listen 80;
    server_name 127.0.0.1;

    # 方法1.1:在server级别重写
    rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;

    # 或者方法1.2:在location中重写
    location /test-chat/orig_docs/ {
        rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;
    }
}

方法 2:使用 location 代理

server {
    listen 80;
    server_name 127.0.0.1;

    location /test-chat/orig_docs/ {
        # 移除test-chat前缀
        rewrite ^/test-chat(/orig_docs/.*)$ $1 break;

        # 代理到实际服务
        proxy_pass http://your_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /orig_docs/ {
        # 处理原始/orig_docs请求
        proxy_pass http://your_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

方法 3:精确的路径重写

server {
    listen 80;
    server_name 127.0.0.1;

    location ~ ^/test-chat/orig_docs/(.+)$ {
        return 301 /orig_docs/$1;
    }
}

完整的 nginx 配置示例

server {
    listen 80;
    server_name 127.0.0.1;

    # 访问日志
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # 重写规则:移除test-chat前缀
    rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;

    # 处理/orig_docs请求
    location /orig_docs/ {
        # 这里配置您的后端服务
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 可选:设置超时时间
        proxy_connect_timeout 30s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;
    }

    # 其他location配置...
    location / {
        # 默认处理
        root /usr/share/nginx/html;
        index index.html;
    }
}

配置说明

permanent (301 重定向):浏览器会记住重定向,适合永久性 URL 变更

redirect (302 重定向):临时重定向,每次都会请求原 URL

break:在 server 内部重写,不对外部重定向

测试配置

# 检查nginx配置语法
nginx -t

# 重新加载配置
nginx -s reload

选择哪种方法取决于您的具体需求:

  • 如果希望用户浏览器地址栏显示新的 URL,使用permanentredirect
  • 如果只是内部重写,使用break
  • 如果需要代理到其他服务,使用方法 2 的代理配置

到此这篇关于Nginx实现前端重定向的三种方法介绍的文章就介绍到这了,更多相关Nginx前端重定向内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx防止恶意域名解析过程

    Nginx防止恶意域名解析过程

    Nginx防止恶意域名解析,通过编辑nginx.conf文件添加限制配置,确保网站安全合规,避免服务器IP被关闭处理
    2026-05-05
  • Nginx配置出现访问白屏问题的原因与解决

    Nginx配置出现访问白屏问题的原因与解决

    这篇文章主要为大家详细介绍了Nginx配置出现访问白屏问题的原因以及该如何解决,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2025-02-02
  • nginx实现根据URL转发请求的实战经历

    nginx实现根据URL转发请求的实战经历

    这篇文章主要给大家介绍了一次关于nginx实现根据URL转发请求的实战经历,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • Nginx日志配置的使用及说明

    Nginx日志配置的使用及说明

    这篇文章主要介绍了Nginx日志配置的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • Nginx反向代理后端服务的操作步骤

    Nginx反向代理后端服务的操作步骤

    反向代理是一种代理服务器,位于客户端与服务器之间,后端服务器处理请求后将响应发送回反向代理服务器,反向代理服务器再将响应返回给客户端,本文将详细介绍Nginx如何反向代理后端服务,涵盖其基本概念、配置方法、负载均衡、SSL/TLS支持等多个方面,需要的朋友可以参考下
    2024-06-06
  • Nginx搭载负载均衡及前端项目部署

    Nginx搭载负载均衡及前端项目部署

    本文介绍了如何使用Nginx实现负载均衡和前端项目部署,通过配置Nginx的负载均衡功能,可以有效地分发客户端请求,提高服务器的处理能力,感兴趣的可以了解一下
    2023-11-11
  • Nginx 虚拟主机配置的三种方式(基于域名)

    Nginx 虚拟主机配置的三种方式(基于域名)

    Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。本文主要介绍了基于域名的实现,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Nginx搭配cpolar实现远程开发无缝协作全过程

    Nginx搭配cpolar实现远程开发无缝协作全过程

    Nginx是一款高性能的本地Web服务器,以其卓越的稳定性和灵活的配置能力,成为开发者搭建本地服务的首选工具,本文将介绍如何利用 Ubuntu操作系统、Docker容器技术以及cpolar内网穿透工具来实现公网远程访问本地Nginx服务器的具体操作流程,需要的朋友可以参考下
    2026-01-01
  • Nginx日志实现访问异常报警详解

    Nginx日志实现访问异常报警详解

    Nginx把遇到的不同级别的问题信息写到错误日志。error_log 指令配置记录到特定的文件,stderr,或者syslog,配置写到日志的最低级别信息。下面这篇文章主要介绍了利用Nginx日志实现访问异常报警的相关资料,需要的朋友可以参考下。
    2017-03-03
  • 使用nginx解决前端js下载跨域问题

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

    订单系统增加附件预览,下载的功能,但是这个附件是客户推单时推送过来的,文件连接是类似oss连接,但是是客户的域名,所以导致跨域问题,本文小编将给大家介绍如何用nginx解决前端js下载跨域问题,需要的朋友可以参考下
    2023-10-10

最新评论