剔除任意指定参数配置

只需要修改需要剔除的参数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. 【rt-thread】移植touchgfx时出现如下错误和现象

    [问题描述] 基于cubemx生成的touchgfx工程,移植入rt-threadkeil编译报重复定义 加载到文件组中的文件奇妙的出现了 Src_ .Device_.i2c_.Keil_  前缀,这 ...

  2. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.25)

    来给大家伙送福利了! 一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘, ...

  3. [转帖]Linux 下rsync命令详细整理

    https://blog.csdn.net/weixin_44052462/article/details/116134761 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面 ...

  4. 【转帖】通过pip命令安装好包之后,在pycharm中不显示此库,也不能调用

    目录 1. 问题描述 2. 解决方法1 3. 解决方法2 1. 问题描述 在cmd输入pip list 命令可以看到我的库都已经安装好了,但是pycharm中却没有显示. 在PyCharm查找,并没有 ...

  5. [转帖]如何用python连接Linux服务器

    1.安装paramiko库 pip install paramiko 2.使用paramiko库连接linux #导入库 import paramiko 创建一个sshclient对象 ssh = p ...

  6. 如何写RN样式 如何写RN组件 如何满屏 如何使用变量

    app.js 文本水平居中了哈 控制文本的大小 字体颜色等 只有在文本元素上去控制哈 import React from 'react'; import {View, Text, StyleSheet ...

  7. 火狐谷歌浏览器去掉input type=number时控件的方法

    html 默认:<input type="number" /></br> 处理:<input type="number" clas ...

  8. 理解Vuex的辅助函数mapState

    参考的地址是: https://www.cnblogs.com/tugenhua0707/p/9794423.html 之所以会在这里记录下来,是为了方便自己以后忘记的时候查看学习而已~: 并没有别的 ...

  9. C# Contains()、 == 和Equals() 比较

    目前在开发中前端页面有搜索条件 和后端的方法进行匹配 有一个Student表,其中有字段:name.age.address.tel CREATE TABLE Student ( Name varcha ...

  10. vim 从嫌弃到依赖(17)——查找模式

    最开始介绍vim的时候,提到vim有普通模式.插入模式.可视模式和命令行模式,并且已经对这几个模式做了详细的介绍了.除了这几个模式以外,vim还有一个非常强大的模式--查找模式,为什么最开始没有将其列 ...