nginx rewrite 用法如何使用rewrite去除URL中的特定参数

 更新时间:2024年02月02日 09:49:09   作者:陈卿诺语  
日常服务中经常会用Nginx做一层代理转发,把Nginx当做前置机,这篇文章主要介绍了nginx rewrite 用法如何使用rewrite去除URL中的特定参数,需要的朋友可以参考下

rewrite 基本介绍

rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。

基本语法:

rewrite 	<regex> 	<replacement> 	[flag];
关键字 		正则 				替代内容 			flag标记
  • regex: 正则表达式语句进行规则匹配
  • replacement: 将正则匹配的内容替换成replacement
  • flag: last | break | redirect | permanent
    • last : 本条规则匹配完成后,继续向下匹配新的location URI规则
    • break: 本条规则匹配完成即终止,不再匹配后面的任何规则
    • redirect : 回302临时重定向,浏览器地址会显示跳转后的URL地址 (防爬虫)
    • permanent : 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

rewrite 使用位置

  • server : 在server中针对所有的请求
  • location : 在 location 中则针对 单个匹配路径的
  • If

nginx rewrite 用法,用rewrite去除URL中的特定参数

日常服务中经常会用Nginx做一层代理转发,把Nginx当做前置机

比如,以下配置:

server {
    # 对外暴露 80 端口
    listen    80;
    server_name 192.168.10.231;
    # 后端API地址暴露为:http://192.168.10.231/apis
    location /apis {
        proxy_pass   http://127.0.0.1:8000/;
        proxy_pass_request_headers      on;
          # 重写URL 去除apis
        rewrite "^/apis/(.*)$" /$1 break;
    }
}

这里的rewrite 就是为了去除URL中的/apis,实际的后端api中是没有这个参数的,但是为了做到在Nginx转发请求,前端需要加上这个参数,以便于区别

比如前端的请求地址是

http://192.168.10.231/apis/user

那么实际上经过Nginx转发后请求的地址是

http://127.0.0.1:8000/user

rewrite “^/api/(.)”/1 break,路径重写:

(1)"^/api/(.)$":匹配路径的正则表达式,用了分组语法就是*(.)**,把/api/以后的所有部分当做1组;
(2)/$1:重写的目标路径,这里用$1引用前面正则表达式匹配到的分组(组编号从1开始,也就是api),即/api/后面的所有。这样新的路径就是除去/api/以外的所有,就达到了去除/api前缀的目的

break:指令,常用的有2个,分别是:last、break;

(1)last:重写路径结束后,将得到的路径重新进行一次路径匹配;
(2)break:重写路径结束后,不再重新匹配路径。

到此这篇关于nginx rewrite 用法如何使用rewrite去除URL中的特定参数的文章就介绍到这了,更多相关nginx rewrite 用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx proxy_pass如何到https后端

    Nginx proxy_pass如何到https后端

    这篇文章主要介绍了Nginx proxy_pass如何到https后端问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • nginx反向代理用做内网域名转发

    nginx反向代理用做内网域名转发

    这篇文章主要为大家详细介绍了nginx反向代理用做内网域名转发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Nginx服务器的安装与一些基本配置总结

    Nginx服务器的安装与一些基本配置总结

    这篇文章主要介绍了Nginx服务器的安装与一些基本配置总结,包括静态化与负载均衡等重要设置的方法记录,需要的朋友可以参考下
    2015-11-11
  • 深入浅析Nginx虚拟主机

    深入浅析Nginx虚拟主机

    对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。这篇文章主要介绍了Nginx虚拟主机的相关知识,需要的朋友可以参考下
    2020-07-07
  • 详解通过Nginx部署Django(基于ubuntu)

    详解通过Nginx部署Django(基于ubuntu)

    这篇文章主要介绍了详解通过Nginx部署Django(基于ubuntu),Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式,有兴趣的可以了解一下。
    2017-01-01
  • Nginx下配置Https证书详细过程

    Nginx下配置Https证书详细过程

    这篇文章主要介绍了Nginx下配置Https证书详细过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • nginx结合openssl实现https的方法

    nginx结合openssl实现https的方法

    这篇文章主要介绍了基于nginx结合openssl实现https的方法,准备工作大家需要安装nginx服务,具体操作过程跟随小编一起看看吧
    2021-07-07
  • Nginx配置之location的匹配优先级浅析

    Nginx配置之location的匹配优先级浅析

    这篇文章主要给大家介绍了关于Nginx配置之location的匹配优先级的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • Ubuntu上安装Nginx服务器程序及简单的环境配置小结

    Ubuntu上安装Nginx服务器程序及简单的环境配置小结

    Nginx是一款高性能的异步非阻塞服务器应用程序,人气相当高,这里我们就来看一下在Ubuntu上安装Nginx服务器程序及简单的环境配置小结:
    2016-07-07
  • Centos7下安装部署nginx的三种方式详解

    Centos7下安装部署nginx的三种方式详解

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,这篇文章主要为大家介绍了Centos7下安装部署nginx的三种方式,希望对大家有所帮助
    2023-08-08

最新评论