Скрипт PAC получает имя хоста из URL. dashboard не превращается автоматически в dashboard.example.internal перед сопоставлением:

function FindProxyForURL(url, host) {
  if (isPlainHostName(host)) {
    return "DIRECT";
  }
  return "PROXY 203.0.113.10:8080";
}

Используйте реальную конечную точку HTTP вместо адреса из документации; список HTTP-прокси даёт кандидатов для тестов публичных назначений там, где этот маршрут разрешён. В этом скрипте короткое имя намеренно возвращает DIRECT; полное имя попадает в ветку прокси. «Обычное имя хоста» означает написание без точки, а не вывод о том, что хост находится в доверенной локальной сети.

Если нужная политика — один внутренний домен, сопоставляйте этот домен, а не каждое короткое имя. У dnsDomainIs и shExpMatch разные входные данные и семантика шаблонов. Проверка суффикса для .example.internal не включает точный корень example.internal; включайте этот случай явно, когда это задумано. Шаблон в стиле оболочки — не IP-подсеть и не регулярное выражение.

Сравните результат скрипта для короткого имени, полного имени, несвязанного публичного хоста и любого предполагаемого корня домена. Это проверяет выбор правила без подключения к прокси. Проверьте первое правило, возвращающее результат, когда широкая ветвь DIRECT не даёт попробовать иначе доступную конечную точку.

Используйте сравнение имён, когда оно выражает политику; DNS-помощники добавляют собственные запросы и задержку. Держите неявный локальный обход браузера отдельно от скрипта. Проверка localhost не заменяет реальное написание публичного или внутреннего назначения.

Похожие статьи