我正在尝试设置一个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 上运行的。
我知道您已经解决了它,但是对于其他偶然发现此问题的人来说,IE 中 PAC 文件中的 shExpMatch 函数存在一个限制(设计上),因为只有 * 和 ? 支持正则表达式通配符。另一种方法是使用正则表达式对象并在其上调用测试方法,传入主机或 url 作为参数:
这是我在客户网站上使用的稍作修改的 WPAD.DAT。它在 IE6 上运行良好,未经修改...(因为他们不会允许我升级到 IE8)。我所做的唯一修改是隐藏客户的域名。
我看到的唯一区别是您一开始没有匹配“http:”,但这无关紧要。
您不应该这样做,但是您可以将 alert() 语句放入其中,IE6 将显示它们。通过这样做,您可能会在调试中获得一些牵引力。