Модификация URL Squid / переписать - PullRequest
1 голос
/ 28 октября 2011

Мне нужно изменить некоторые специальные URL-адреса, которые передаются через Squid, например: я получаю доступ к адресу www.google.com.vn через мой Squid. Я хочу изменить исходный код Squid в некоторых местах, чтобы заменить www.google.com.vn на www.google.com. Таким образом, каждый запрос к www.google.com.vn становится запросом к www.google.com

Пожалуйста, помогите ASPS

1 Ответ

3 голосов
/ 26 января 2012

Прежде всего, переписывание и перенаправление squid зависит от стороннего помощника.Самое приятное то, что вы можете написать этот помощник на любом языке программирования .

, используя директиву url_rewrite_program в squid.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;
     }

}
...