Proxy
proxy.pac 中的 shExpMatch 和 Internet Explorer 6
我正在嘗試設置一個
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 將顯示它們。通過這樣做,您可能會在調試中獲得一些牽引力。