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

  • 相关阅读:
    jQuery基础知识
    在nginx上部署django项目--------Gunicorn+Django+nginx+mysql
    pycharm激活码------2017.11.之前有效
    nginx安装及优化
    Python sh模块--------替换subprocess的利器
    Django1.10官方文档翻译
    神秘的.user.ini文件
    Thinkphp5 分页带参数
    javascript 点击按钮实现隐藏显示切换效果
    Centos 7 安装 Supervisor 及使用
  • 原文地址:https://www.cnblogs.com/dennyLee2025/p/13742497.html
Copyright © 2011-2022 走看看