2012-03-25 190 views
3

我有一个Glype代理,我想重写这个URL。网页上的所有网址都会自动转换为:http://proxy.com/browse.php?u = [网址HERE]。例如:如果我去/对海盗湾浏览我的代理我想要的网址从这个转换:重写URL的Glype(nginx)

proxy.com/tpb/browse.php?u=http%3A%2F%2Fthepiratebay.se%2Fbrowse&b=0 

要这样:

proxy.com/tpb/browse 

正如你所看到的,整体的一部分:

browse.php?u=http%3A%2F%2Fthepiratebay.se%2F 

是走了(和&b=0网址是什么后面)。它具有与海盗湾相同的域结构。

我已经试过这样的事情:

 location /tpb/ { 
     rewrite ^/browse.php?u=(.*)$ /$1? last; 
     break; 
      } 

但它无法正常工作。有人有答案吗?另一个功能也是受欢迎的。 (如fastcgi_split_path_info或别的东西是什么nginx的兼容)

(如果你想看到一个例子去tpb.piratenpartij.nl,但我不知道,如果他们使用Glype)

+0

我不知道你为什么要这样做,但如果是因为你想隐藏网站的网址(这样用户的历史记录是匿名的),Glype提供了这个功能,它被称为url -encoding。 – 2014-06-04 17:45:18

回答

0

我认为proxy.com/tpb/browse.php?u=http%3A%2F%2Fthepiratebay.se%2Fbrowse&b=0将匹配location /tpb/browse.php ,所以你可以写

location /tpb/browse.php { 
    rewrite ^/tpb/browse\.php.* $host/tpb/browse redirect; 
} 

希望它做你想做的,它不关心?u =,你真的需要它吗?

让我知道它是否有效,我现在无处可去尝试。

+0

不幸的是它不工作。我试着用'if(!-e $ request_filename)'并用'break;'关闭,但也不起作用。如果您有其他解决方案,请告诉我。提前致谢。 – 2012-03-26 14:59:28

+0

@吨你有没有找到解决办法呢?如果有,请让我知道。 – 2013-06-13 06:50:47