shExpMatch и Internet Explorer 6 в proxy.pac

Удалите базу данных платежной ведомости... :(

rm PAYROLL

Намеревался удалить текстовый файл аналогичного имени, PAYROLL.txt. Потраченная остальная часть дня, восстанавливая предыдущее резервное копирование и затем выполняя ряд аудитов для восстановления платежной ведомости на основе других таблиц поддержки.

В целом, это был довольно причудливый опыт (и потеря и восстановление)... :)

Piko

0
задан 2 July 2009 в 04:03
2 ответа

Вот немного измененный 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": вначале, но это не должно иметь значения.

Вы, как предполагается, не делаете это, но можно поместить предупреждение (), операторы в и IE6 отобразят их. Вы можете получать некоторую тягу в отладке путем выполнения этого.

1
ответ дан 4 December 2019 в 13:16
  • 1
    Я также заметил he' s соответствие против " host" по сравнению с " url" в Вашем примере. Не уверенный, если это имеет значение также. –  Kevin Kuphal 2 July 2009 в 05:18
  • 2
    It' s вся польза. Я наблюдал журналы прокси, и example.com продолжал появляться. Я узнал после часов отладки, что это было то, потому что прозрачный прокси использовался. Grrr. –  Harley 2 July 2009 в 05:22

Я знаю, что Вы уже решили его, но для других, которые натыкаются на это существует ограничение (дизайном) в IE для функции shExpMatch в файле PAC в том единственном * и? подстановочные знаки regexp поддерживаются. Альтернатива должна использовать объект regex и назвать метод тестирования для него передающий в хосте или URL как параметр:

var regex = /*example.com*/;
if(regex.test(host))
    return "DIRECT";
return "PROXY 1.2.3.4:8080";
2
ответ дан 4 December 2019 в 13:16
  • 1
    Кто-либо определяет раздражающую ошибку здесь? Все между/* и */рассматривается как комментарий, таким образом, Вы получаете синтаксическую ошибку. Сделать этот вид вещи, you' ll должны использовать " var regex = новый RegExp ('...') " –  Harley 3 July 2009 в 03:11

Теги

Похожие вопросы