zoukankan      html  css  js  c++  java
  • nginx 剔除 $args 变量中任意指定参数之万金油

    剔除任意指定参数配置

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

    #剔除$args中的redirectUrl 参数
    server {
        listen   80;
        server_name  www.mynginx.rewrite;
    
        location /search {
            set $args_tmp &${args};
            if ( $args_tmp ~* ^(.*)(&redirectUrl=[w%@.]*)(.*)$){
                set $args $1$3;
            }
         #除去参数开头可能带有&字符的情况
    if ( $args ~* ^&(.*)$){ set $args $1; } 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:WindowsSystem32driversetchosts中配置DNS,有疑问请在评论区留言。

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

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

  • 相关阅读:
    【Python3爬虫】一次应对JS反调试的记录
    【Python3爬虫】突破反爬之应对前端反调试手段
    学习CSS之如何改变CSS伪元素的样式
    学习CSS之用CSS实现时钟效果
    学习CSS之用CSS绘制一些基本图形
    【Python3爬虫】一次破解JS加密数据的记录
    Linux安装部署Redis(超级详细)
    Linux部署MongoDB
    使用Nginx对.NetCore站点进行反向代理
    Linux部署.NetCore站点 使用Supervisor进行托管部署
  • 原文地址:https://www.cnblogs.com/dennyLee2025/p/13742497.html
Copyright © 2011-2022 走看看