orange icon indicating copy to clipboard operation
orange copied to clipboard

rewrite规则正则书写问题

Open liuxinfeng123 opened this issue 5 years ago • 2 comments

在nginx.conf中定义的 rewrite ^/test/(.*)$ /JYDX/$1,在orange中的rewrite重写里应该怎么写,按照原样不起作用呢,在配置文件里正常 1@JUF)D81W%RD%)FM3YDFN6

liuxinfeng123 avatar Oct 18 '19 13:10 liuxinfeng123

  • 你可以学习下Orange变量提取模块如何使用,索引式提取和模板式提取应该如何取值
  • 以下提供索引式提取demo,仅供参考
  1. dashboard配置如下: image

  2. nginx.conf配置如下

    location /rewrite/api/v2/ {
        rewrite_by_lua_block {
            local orange = context.orange
            orange.redirect()
            orange.rewrite()
        }

        access_by_lua_block {
            local orange = context.orange
            orange.access()
        }

        # proxy
        echo '/api/v2';

        header_filter_by_lua_block {
            local orange = context.orange
            orange.header_filter()
        }

        body_filter_by_lua_block {
            local orange = context.orange
            orange.body_filter()
        }

        log_by_lua_block {
            local orange = context.orange
            orange.log()
        }
    }


    location /rewrite/api/v3/ {
        rewrite_by_lua_block {
            local orange = context.orange
            orange.redirect()
            orange.rewrite()
        }

        access_by_lua_block {
            local orange = context.orange
            orange.access()
        }

        # proxy
        echo '/api/v3';
        echo $args;

        header_filter_by_lua_block {
            local orange = context.orange
            orange.header_filter()
        }

        body_filter_by_lua_block {
            local orange = context.orange
            orange.body_filter()
        }

        log_by_lua_block {
            local orange = context.orange
            orange.log()
        }
    }
  • curl -XGET http://ip:port/rewrite/api/v2/v3 ,输出如下 /api/v3

liulei18 avatar Oct 21 '19 07:10 liulei18

谢谢

liuxinfeng123 avatar Oct 21 '19 10:10 liuxinfeng123