重写URL的Glype(nginx)
我有一个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)
我认为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 =,你真的需要它吗?
让我知道它是否有效,我现在无处可去尝试。
不幸的是它不工作。我试着用'if(!-e $ request_filename)'并用'break;'关闭,但也不起作用。如果您有其他解决方案,请告诉我。提前致谢。 – 2012-03-26 14:59:28
@吨你有没有找到解决办法呢?如果有,请让我知道。 – 2013-06-13 06:50:47
我不知道你为什么要这样做,但如果是因为你想隐藏网站的网址(这样用户的历史记录是匿名的),Glype提供了这个功能,它被称为url -encoding。 – 2014-06-04 17:45:18