我有一个通过路由器(也可以是 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 上查看教程。