W PAC shExpMatch używa symboli wieloznacznych w stylu powłoki. Dla subdomen example.com:

if (shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

W tych zwracanych wartościach używaj punktów końcowych HTTP wybranych przez politykę; lista proxy HTTP dostarcza kandydatów dla dozwolonych tras publicznych. Gwiazdka pasuje do sekwencji znaków. Nie jest operatorem powtórzenia wyrażenia regularnego, więc przypominający regex .*example.com zmienia znaczenie.

Gdy dokładna nazwa nadrzędna należy do polityki, uwzględnij ją jawnie:

if (host === "example.com" || shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

Użycie *example.com zamiast tego akceptowałoby także nazwy kończące się tymi literami bez kropki rozdzielającej. To rozszerza zbiór poza zamierzoną granicę domeny.

Przenośna podstawa symboli wieloznacznych PAC obejmuje * i ?; klasy znaków różnią się w zależności od implementacji. Regex JavaScriptu używa natomiast test() oraz własnych reguł zakotwiczania i ucieczki.

Dopasuj zamierzone dane wejściowe. host to nazwa hosta, natomiast url zawiera schemat i mogła zostać oczyszczona. Reguła domeny nie powinna przypadkowo zależeć od ścieżki, której przeglądarka nigdy nie dostarcza.

Powiązane artykuły