Proxy

proxy.pac 中的 shExpMatch 和 Internet Explorer 6

  • July 2, 2009

我正在嘗試設置一個proxy.pac可用於 IE6 客戶端的文件。基本上就是這樣:

function FindProxyForURL(url, host) {
   if (shExpMatch(host, "*example.com*")) return "DIRECT";

   return "PROXY 1.2.3.4:8080";
}

這個文件告訴瀏覽器任何試圖去匹配主機的客戶端都"*example.com*"應該使用直接連接,否則使用代理。

這在基本上任何瀏覽器中都可以正常工作,但shExpMatch無論我嘗試什麼,IE6 都無法匹配。我已閱讀此內容並按照此處所述禁用記憶體,但無濟於事。

我很肯定 IE6 支持該shExpMatch功能,但如果有人想糾正我,我會很高興聽到它。順便說一下,這是在 WinXP SP2 上執行的。

這是我在客戶網站上使用的稍作修改的 WPAD.DAT。它在 IE6 上執行良好,未經修改…(因為他們不會允許我升級到 IE8)。我所做的唯一修改是隱藏客戶的域名。

function FindProxyForURL(url, host) {

 if ( isPlainHostName(host) ) { return "DIRECT"; }

 if ( shExpMatch(url, "https:*") ) { return "DIRECT"; }

 if ( shExpMatch(url,"http://*.customer.domain.com")) { return "DIRECT"; }

 if ( isInNet(host,"127.0.0.1", "255.255.255.255") ) { return "DIRECT"; }

 if ( isInNet(host,"10.35.0.0", "255.255.0.0") ) { return "DIRECT"; }

 if ( isInNet(host,"192.168.0.0", "255.255.0.0") ) { return "DIRECT"; }

 return "PROXY proxy.customer.domain.com:8080";
}

我看到的唯一區別是您一開始沒有匹配“http:”,但這無關緊要。

您不應該這樣做,但是您可以將 alert() 語句放入其中,IE6 將顯示它們。通過這樣做,您可能會在調試中獲得一些牽引力。

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