Я хочу перенаправить весь свой трафик HTTP-прокси на скрипт perl или php.
У меня есть рабочая настройка squid, и она есть в моем squid.conf
url_rewrite_program "c:\\squid\\redirect.pl"
Но когда я запускаю squid в консоли, он существует с Аварийное завершение программы и это в cache.log:
2012/03/23 19:26:12| helperOpenServers: Starting 5 'c:\squid\php\redirect.pl' processes
2012/03/23 19:26:12| ipcCreate: CHILD: c:\squid\php\redirect.pl: (8) Exec format error
2012/03/23 19:26:12| ipcCreate: PARENT: OK read test failed
2012/03/23 19:26:13| --> read returned 4
То же самое происходит с PHP-скриптом. Скрипты работают нормально, когда я выполняю их прямо в консоли.
Содержание Perl-скрипта:
#!/usr/bin/env perl
$|=1;
while (<>) {
$url = m/^([^ ]*)/;
if ($url !~ /^http:\/\/www\.hostname\.com/) {
$url =~ s@^http://www\.hostname\.com/(.*)@http://www.hostname.com/\1@;
print "301:$url\n";
} else {
print "$url\n";
}
}
enter code here
Из http://wiki.squid-cache.org/KnowledgeBase/Windows :
Squid не знает, как запускать внешние помощники на основе скриптов, таких как .bat, .cmd, .vbs, .pl и т. Д. Поэтому в squid.conf всегда должен быть указан путь интерпретатора, например:
url_rewrite_program c: /perl/bin/perl.exe c: /squid/libexec/redir.pl