Назад | Перейти на главную страницу

Squid с php или perl «url_rewrite_program» в windows

Я хочу перенаправить весь свой трафик 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