1

我需要修改一些通过 Squid 传递的特殊 URL,例如:我通过 Squid 访问地址 www.google.com.vn。我想在某个地方修改 Squid 源代码,将 www.google.com.vn 替换为 www.google.com。因此,对 www.google.com.vn 的每个请求都将成为对 www.google.com 的请求

请帮助ASPS

4

1 回答 1

3

首先,squid 重写和重定向依赖于第三方助手。最好的部分是您可以用任何编程语言编写此帮助程序。

使用url_rewrite_programsquid.conf 中的指令并将自定义脚本的路径添加到其中。您的脚本将收到以下内容:

URL client_ip "/" fqdn user method [ kvpairs]\n

显然你需要这个URL部分,所以想办法获取 url 部分并返回你希望客户被引导到的网站。

希望以任何方式帮助...

示例重写程序 (C++)

#include <iostream>
#include <string>
using namespace std;
// a replace function :)
bool replace(std::string& str, const std::string& from, const std::string& to) {
size_t start_pos = str.find(from);
if(start_pos == std::string::npos)
    return false;
str.replace(start_pos, from.length(), to);
return true;
}


int main()
{
     while(1)
     {
        string input;
        cin >> input;
        replace(input, "www.google.vn", "www.google.com");
        cout << input << endl;
     }

}
于 2012-01-26T11:52:17.563 回答