Jeg bruker nettadressen Regex funksjon i Squid for tillatelse nettsteder via en liste over regex strenger å matche tillatt domener. Den regex ble faktisk kopiert fra vår forrige proxy løsning, og det syntes å "bare fungere". Men vi har nylig oppdaget at enkelte domener (trolig på grunn av virtuelle maskiner eller Vertshode konfigurasjon avhengig om det er Apache eller IIS henholdsvis) mislykkes hvis de brukes uten www-prefikset i nettadressen. Nedenfor er et eksempel på hva noen ganger fungerer:
Code:
http://.*\.microsoft\.com/.*
The '.* \ ". før "Microsoft \. com"-delen skal bety ethvert nummer av ethvert tegn (null eller flere), etterfulgt av et "." Jeg ser feil i forhold til "\". delen av regex og planlegger å fikse det. Jeg har imidlertid ikke vært i stand til å finne en måte å matche både 'www.microsoft.com og microsoft.com. Her er hva jeg trodde ville fungere:
Code:
http://[!.*|.*\.]microsoft\.com/.*
Jeg innrømmer å være veldig dårlig med regex, så du trenger ikke være for hardt for meg, takk.

Jeg har bare aldri vært i stand til å "få det" 100%. Unødvendig å si at den ovenfor ikke fungerer for meg i det hele tatt. Det samsvarer verken 'microsoft.com' eller 'www.microsoft.com. Jeg har prøvd noen begrenset testing med "grep" for å prøve og finne en tilfredsstillende løsning. Men, hva er det som jeg egentlig prøver å matche? Ved første, jeg antar jeg ønsket en tomme tegn, men jeg er ikke ute etter "microsoft.com. Da tenkte jeg, et null? Men det synes å være umulig å match siden det ikke egentlig en kamp i det hele tatt siden det er ingen tegn der. Jeg er sikker på at noen som er ekspert på regex ville se på dette og gi noe sinnsykt enkelt. Jeg virkelig ikke vil gjøre dette:
Code:
http://[.*\.microsoft\.com/.*|microsoft\.com/.*]
eller enda verre, dette:
Code:
http://.*\.microsoft\.com/.*
http://microsoft\.com/.*
Noen forslag? Takk på forhånd ...