Mae shExpMatch PAC yn defnyddio cardiau gwyllt, nid mynegiadau rheolaidd
Gall rheol procsi edrych yn gywir heb fyth gyfateb, oherwydd bod shExpMatch a mynegiadau rheolaidd JavaScript yn defnyddio ieithoedd patrwm gwahanol.
Yn PAC, mae shExpMatch yn defnyddio cardiau gwyllt arddull shell. Ar gyfer is-barthau example.com:
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Defnyddiwch y penbwyntiau HTTP a ddewiswyd gan y polisi yn y gwerthoedd dychwelyd hyn; mae'r rhestr procsi HTTP yn darparu ymgeiswyr ar gyfer llwybrau cyhoeddus a ganiateir. Mae'r seren yn cyfateb i ddilyniant o nodau. Nid yw'n weithredydd ailadrodd mynegiad rheolaidd, felly mae .*example.com sy'n edrych fel regex yn newid yr ystyr.
Cynhwyswch yr enw rhiant union yn benodol pan fo'n perthyn i'r polisi:
if (host === "example.com" || shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example:8080";
}Byddai defnyddio *example.com yn lle hynny hefyd yn derbyn enwau sy'n gorffen â'r llythrennau hynny heb bwynt gwahanu. Mae hynny'n ehangu'r set y tu hwnt i'r ffin barth a fwriadwyd.
Mae sylfaen cardiau gwyllt PAC cludadwy yn cynnwys * a ?; mae dosbarthiadau nodau yn amrywio yn ôl gweithrediad. Mae regex JavaScript yn defnyddio test() a'i reolau angori a dianc ei hun yn lle hynny.
Cyfatebwch y mewnbwn a fwriadwyd. Enw gwesteiwr yw host, tra bod url yn cynnwys cynllun ac efallai wedi'i diheintio. Ni ddylai rheol barth ddibynnu'n ddamweiniol ar lwybr nad yw'r porwr byth yn ei ddarparu.