Pišite WebProxy izuzetke kao regularne izraze
Napravite valjan izraz izuzetka za System.Net.WebProxy sa escapovanim tačkama i eksplicitnim granicama imena hosta umesto džokera u stilu ljuske.
Argument BypassList klase System.Net.WebProxy sadrži regularne izraze. Uzorak poput *.office.example nije valjan jer zvezdica na početku nema prethodni izraz koji bi ponavljala.
Za HTTP i HTTPS zahteve prema office.example i njegovim poddomenima PowerShell konfiguracija može da koristi:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Escapovane tačke odgovaraju doslovnim tačkama. Ponovljena grupa oznake imena hosta dozvoljava i osnovni domen i imena ispod njega. Sidra drže ime poput office.example.other.test izvan ovog pravila. PowerShell niski u jednostrukim navodnicima čuvaju obrnute kose crte koje izraz koristi.
Trenutna .NET implementacija poredi ove izraze sa šemom odredišta, imenom hosta i nestandardnim portom. Ne uključuje putanju zahteva ni niz upita. Zato opciona grupa porta dozvoljava i nestandardne portove; uklonite je ili suzite ako pravila zahtevaju određenu uslugu.
BypassProxyOnLocal je false u ovom primeru da bi se regex pravilo moglo pregledati odvojeno od te dodatne postavke izuzetka. Prikačite dobijeni proxy objekat HTTP klijentu koji treba da ga koristi. Za dozvoljeni test javnog URL-a izvan domena izuzetka, HTTP zapis iz HTTP proxy list može dati svoju adresu, bez konfigurisanog proxy naloga.
Koristite IsBypassed sa reprezentativnim Uri vrednostima da pregledate odluku o usmeravanju: osnovni domen, jedan poddomen, nepovezani spoljni host i obmanjujući duži sufiks. Rezultat true znači da je izabran direktan pristup; ne dokazuje da je direktno odredište dostupno.