Windows

在 Windows 上使用 php 或 perl“url_rewrite_program”的魷魚

  • March 29, 2012

我想將我的所有 http 代理流量重定向到 perl 或 php 腳本。

我有一個工作魷魚設置,並在我的 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

引用自:https://serverfault.com/questions/372860