剔除任意指定参数配置

只需要修改需要剔除的参数key(如:redirectUrl)

#剔除$args中的redirectUrl 参数
server {
listen 80;
server_name www.mynginx.rewrite; location /search {
     #在参数前加入&,并赋值给args_tmp
set $args_tmp &${args};
     #正则判断进行剔除
if ( $args_tmp ~* ^(.*)(&redirectUrl=[\w%@\.]*)(.*)$){
set $args $1$3;
}
     #除去参数开头可能带有&字符的情况
if ( $args ~* ^&(.*)$){
set $args $1;
}
     #最终的$args为剔除 redirectUrl参数后的$args
     rewrite ^/search http://www.text.com/text?$args? break;
 }
}

测试项:

http://www.mynginx.rewrite/search?redirectUrl=abc.@&abcd=1234&token=xxxxx
http://www.mynginx.rewrite/search?token=xxxxx&redirectUrl=abc.@&abcd=1234
http://www.mynginx.rewrite/search?token=xxxxx&abcd=1234&redirectUrl=abc.@

测试结果分别是:

http://www.text.com/text?abcd=1234&token=xxxxx
http://www.text.com/text?token=xxxxx&abcd=1234
http://www.text.com/text?token=xxxxx&abcd=1234

某一参数转为访问路径

将$args 参数数组中的某一参数转为访问目录,并在$args 中剔除(原理如上)

server {
listen 80;
server_name www.mynginx.rewrite; location /search {
set $args_tmp &${args};
if ( $args_tmp ~* ^(.*)(&redirectUrl=\w*)(.*)$){
       set $arg_path $arg_redirectUrl; #获取参数变量redirectUrl的值
set $args $1$3;
rewrite ^/search /text/$arg_path;
}
} location ~* /text {
if ( $args ~* ^&(.*)$){#除去参数开头可能带有&字符的情况
set $args $1;
}
rewrite ^/text/(.*) http://www.text.com/text/$1?$args? break;
}
}

测试项:

http://www.mynginx.rewrite/search?redirectUrl=abc&abcd=1234&token=xxxxx
http://www.mynginx.rewrite/search?token=xxxxx&redirectUrl=abc&abcd=1234
http://www.mynginx.rewrite/search?token=xxxxx&abcd=1234&redirectUrl=abc

测试结果分别是:

http://www.text.com/text/abc?abcd=1234&token=xxxxx
http://www.text.com/text/abc?token=xxxxx&abcd=1234
http://www.text.com/text/abc?token=xxxxx&abcd=1234

注:测试前请在C:\Windows\System32\drivers\etc\hosts中配置DNS,有疑问请在评论区留言。

知识虽不属于个人,但请尊重每位笔者。

转载请指明出处:https://www.cnblogs.com/dennyLee2025/p/13742497.html

nginx 剔除请求参数 $args 变量中任意指定参数之万金油的更多相关文章

  1. SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点

    在学校的时候就经常做一些网站,所以这次在公司实习,组长第一次给了一个企业的网站还是很快的完成了.中间并没有遇到什么大的问题,但是还是遇到了两个新手非常容易混淆的小问题,所以拿出来跟大家分享一下. 主要 ...

  2. 关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url

    在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚.所以没办法,于是自己花了一些时间写了一个: 1 /** 2 * 删除URL中的指定参数 3 * @param {*} url 4 * @pa ...

  3. 0057 Spring MVC如何获取HTTP请求头信息--URL中的动态参数--@RequestHeader--@CookieValue--@PathVariable

    获取HTTP请求头信息 一个HTTP请求除了有参数和实体内容外还有HTTP请求头信息,Spring MVC也可以获取这部分信息 @RequestHeader解可以将请求头信息映射到处理方法的形参上 @ ...

  4. JAVA从URL参数链接中获取指定参数的值

    import java.util.HashMap; import java.util.Map; /** * @author yvioo */ public class UrlUtils { /** * ...

  5. JS获取url中的指定参数

    function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new O ...

  6. 关于Retrofit网络请求URL中含有可变参数的处理

    开题:在此默认各位看官对Retrofit.以及Okhttp已经有过一定的了解及应用,所以今天我们不谈基础入门的东西,今天我们谈在Retrofit请求接口管理类中URL参数含有动态参数的处理方式.一般我 ...

  7. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息

    ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ...

  8. nginx 获取请求头,URL参数

    获取url参数 在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容. 在 nginx配置中,通过$arg_PARA ...

  9. Nginx笔记总结八:ngx_http_core_module模块中的变量

    $arg_patameter HTTP请求中某个参数的值,如/index.php?site=www.ttlsa.com,可以用$arg_site取得www.ttlsa.com这个值 $args HTT ...

  10. Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...

随机推荐

  1. docker容器中执行GPU环境中的tensorflow和pytorch任务

    1. 背景 (1) 业务方提供了一台有GPU的服务器,且已经安装了显卡等组件,cuda版本10.2,具体信息如下 (2) 在裸机上部署anaconda.pytorch.tensorflow较为麻烦,因 ...

  2. 小技巧:WIndows快速创建文件夹

    快速创建文件夹的技巧 1.首先创建文本文档将扩展名更改为.bt,mkdir.bat 2.写入创建文件夹的代码 md 文件夹1 文件夹2 文件夹3 pause 3.双击执行mkdir.bat

  3. IDEA:端口号被占用解决办法

    idea遇到这样的问题:如下图 解决办法 步骤1:通过端口号找到pid打开dos命令行,输入netstat -ano | find "9009"得到下列内容,看到最后一行就是pid ...

  4. [转帖]Linux命令(51)——ipcs命令

    https://cloud.tencent.com/developer/article/1380589 1.命令简介 ipcs命令用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表.共享 ...

  5. [转帖]GC 日志

    https://www.xjx100.cn/news/188814.html?action=onClick 垃圾回收器的发展历史 1999年:随JDK1.3.1一起来的串行方式Serial GC(第一 ...

  6. ChatGPT 提高工作效率-一例SQL编写的过程

    ChatGPT 提高工作效率-一例SQL编写的过程 前言 遇到一个问题, 怀疑是有一些补丁没有被依赖. 导致第一次更新时没有更新这些没依赖的补丁. 后面更新时又更新了这些游离态的补丁. 导致出现 ol ...

  7. [转帖]“炫技”还是“真硬核”,OpenPPL 实测阿里「倚天 710」芯片

    http://www.voycn.com/article/xuanjihaishizhenyingheopenppl-shicealiyitian-710-xinpian   本文将以深度学习模型推理 ...

  8. [转帖]018 磁盘 IO 性能监控 / 压测工具 (sar、iotop、fio、iostat)

    https://my.oschina.net/u/3113381/blog/5465063   1 sar 命令查看当前磁盘 IO 读写 sar(System Activity Reporter 系统 ...

  9. 定位解析一个因脚本劫持导致webpack动态加载异常的问题

    问题描述 项目现场的前端项目在点击顶部的导航栏切换不同的模块时,会有小概率出现模块加载报错的情况: 我们的前端项目里是有基于react-loadable做的懒加载的,上图的12.be789340.ch ...

  10. 【小测试】rust中的无符号整数溢出

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.在编译阶段就可以识别出来的溢出 fn main(){ ...