与 IE 和 Safari(Windows)兼容的本地 .pac 文件 URL 格式?

与 IE 和 Safari(Windows)兼容的本地 .pac 文件 URL 格式?

假设我想使用存储在 C:\proxy.pac 的代理自动配置文件。要使 Internet Explorer 使用此配置,我必须按以下方式在 LAN 设置中指定 pac 文件:

file://C:/proxy.pac

但使用相同代理设置的 Safari 会忽略它。要让 Safari 使用 pac 文件,我必须将其引用为

file:///C:/proxy.pac

(开头有 3 个斜线),根据维基百科是正确的格式。但这样 Internet Explorer 会忽略它。Opera 和 Chrome 也使用相同的代理设置,两种方式都可以,但有没有其他选项可以同时适用于 Safari 和 Internet Explorer?

答案1

对于 IE 和 Windows 平台,本地 pac 文件的正确位置似乎是:

file://C:/Windows/system32/drivers/etc/proxy

在您的 hosts 文件旁边。

答案2

由于 WinHTTP 从未支持该架构,因此 W8.1 不再支持此功能file://。因此使用 WinHTTP 进行代理设置的工具将无法识别它。

另请注意:

2012 年 11 月,.NET Framework 更改为使用 WinHTTP 进行 PAC 处理,这意味着,默认情况下,.NET 应用程序将不再支持file://基于的代理脚本。

如果您想为 IE10 以上的版本启用文件协议,您可以始终使用以下注册表设置:

  • 钥匙: HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\
  • 价值:EnableLegacyAutoProxyFeatures
  • 类型: REG_DWORD
  • 数据: 1

请参阅“注意:基于 File:// 的代理脚本已弃用”部分这里

答案3

如果您使用点,会发生什么情况?正如 Wikipedia 所讨论的那样:file://./C:/proxy.pac?只要它不在共享名上,IE 和 Safari 都可能接受这种路径“拼写”。

或者,运行本地 Web 服务器并提供 .pac 文件,然后提供 URL 作为http://localhost/path/to/proxy.pac。这应该可以解决路径 URL 格式的差异问题,因为完全避免使用路径 URL。

答案4

如果您正在运行本地网络服务器,则可以通过该网络服务器传送本地 pac 文件。

IIS 中的 ie:

  • 将文件放在此处:C:\inetpub\wwwroot\proxy.pac
  • 使用 IIS 管理器为 .pac 添加 mime 类型:
    .pac->application/x-ns-proxy-autoconfig
    在此处输入图片描述
  • 在代理设置中引用 PAC 文件如下:
    http://localhost/proxy.pac

相关内容