#url #rewrite #squid
#url #переписать #squid
Вопрос:
Мне нужно изменить некоторые специальные URL-адреса, которые передаются через Squid, например: я получаю доступ к адресу www.google.com.vn через моего Кальмара. Я хочу изменить исходный код Squid в каком-то месте для замены www.google.com.vn в www.google.com . Поэтому каждый запрашивает www.google.com.vn станут просьбами к www.google.com
Пожалуйста, помогите ASPS
Ответ №1:
Прежде всего, перезапись и перенаправление 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::stringamp; str, const std::stringamp; from, const std::stringamp; 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;
}
}