如何使用透明代理更改 URL 参数

如何使用透明代理更改 URL 参数

我有一个通过路由器(也可以是 HTTP 代理)连接到互联网的计算机子网。

我的目标是更改单个 URL 的 URL 参数。

如果用户访问http://www.google.com/或者http://www.google.com/?hl=en,在这两种情况下,他们都应该看到来自http://www.google.com/?hl=fr

是否可以使用 apache 配置中的 url 重写来实现此目的?还有哪些方法可以成为实现目标的最简单方法?

更新:google.com 仅作为示例,事实并非如此。

答案1

您可以使用 SQUID(一种更常用的代理)来完成您尝试的操作。url_rewrite_program选项允许将请求发送到脚本进行重写。

下面的脚本将会按照您描述的方式替换 URL:

#!/usr/bin/perl

while (<>) {
        @line = split;
        $_ = $line[0];

        if (m|http://google.com/\?hl=en|) {
                # do some replacement work
                $_ =~s|\?hl=en|\?hl=fr|g;
                print $_,"\n";
        } else {
                # send the request directly
                print $_;
        }
}

如果你更喜欢使用 apache,听起来可以使用mod_proxy和的组合来完成mod_rewrite。请参阅这一页在 apache.org 上查看教程。

相关内容