我们公司有一个组策略,强制所有 (Win7) 计算机使用代理服务器,但有几个例外。其中一个例外是通配符 - *.ourcompanydomain.com
。
但是,我们只需要包含该通配符的 1 个子域名 - proxyme.ourcompanydomain.com
- 通过代理而不是被排除。
我们知道我们可以逐个排除所有子域名,ourcompanydomain.com
而不是使用通配符,但有几十个子域名,而且列表经常更改。设置起来很困难,更不用说维护了。
还有其他方法可以排除通配符*.ourcompanydomain.com
并重新包含吗proxyme.ourcompanydomain.com
?
答案1
这可以通过使用自动配置脚本(又名 PAC 文件)来实现。
从“自动检测设置”部分了解 Web 代理配置:
用户还可以使用对话框中的第二个复选框直接指定代理配置脚本的 URL。下面的 URL 字段直接指向目标脚本(例如http://proxy.contoso.com/proxy.pac)。
代理配置脚本(无论是通过 WPAD 发现的还是由用户手动指定的)都是 JavaScript 文件,其中至少包含一个 FindProxyForURL(url, host) 函数。每次浏览器需要决定将给定请求发送到何处时,都会调用此函数。它返回一个字符串,该字符串可以是:
“DIRECT” 表示请求应该绕过代理
“PROXY PrimaryProxy:8080; BackupProxy:81” 表示请求应该转发到端口 8080 上的代理 PrimaryProxy,除非该服务器无法访问,在这种情况下请求应该发送到端口 81 上的 BackupProxy。
并基于维基百科关于 PAC 的文章我相信这对你有用:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "proxyme.mycompanydomain.com"))
{
return "PROXY myproxy.mycompanydomain.com:8080";
}
if (shExpMatch(host, "*.mycompanydomain.com"))
{
return "DIRECT";
}
return "PROXY myproxy.mycompanydomain.com:8080";
}