V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
chen7228413
V2EX  ›  Linux

求助, nginx 重定向的问题

  •  
  •   chen7228413 · 2019-01-16 17:46:40 +08:00 · 1978 次点击
    这是一个创建于 1920 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求访问 http://xxx.com/xxxx?src=http://yyy.com/ccccc?xsdfsa 重定向到 http://yyy.com/ccccc?xsdfsa

    就是 nginx 匹配 args src=http://yyy.com/ccccc?sxdfsa , 重定向到 http://yyy.com/ccccc?sxdfsa

    我试过 if ($args ~* src=(\w+?)(&|$)) {
    set $src $1 ;
    }
    rewrite ^ $src redirect ;
    但是 nginx 会报重定向次数过多

    请问 V 友们有没有办法
    3 条回复    2019-01-17 17:11:28 +08:00
    ppyybb
        1
    ppyybb  
       2019-01-16 18:07:09 +08:00 via iPhone
    没用过 nginx 重定向,提供一些思路

    重定向过多是不是陷入反复循环造成的?
    你如果直接访问重定向后的地址会怎么样?
    浏览器能看到实际访问哪些地址吗?
    mason961125
        2
    mason961125  
       2019-01-16 18:09:12 +08:00
    为什么 query string 表示的重定向要在 nginx 里做呢?
    chen7228413
        3
    chen7228413  
    OP
       2019-01-17 17:11:28 +08:00
    这个问题解决了,看到有人收藏 把配置贴在下面把
    if ( $query_string ~* ^(.*)src=(.*)$) {
    set $src $2;
    proxy_pass $src/;
    }
    Ngnix 中如果用变量作为反向代理的地址时,会出现无法解析域名,在 http 的配置中加上下面这段配置即可
    resolver 8.8.8.8 ipv6=off;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2932 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 08:53 · PVG 16:53 · LAX 01:53 · JFK 04:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.