My end goal is for a TrafficScript request rule that allows multiple subnets/hosts access to multiple URL paths using begins with logic, while redirecting those subnets/hosts not permitted to http://www.google.com . In plain English, the goal is: If the source subnet/host doesn't match 10.10.10.10/32 OR 10.64.0.0/16 OR 10.16.10.0/24 OR 10.16.20.0/24 OR 10.16.30.0/24 AND the URL path starts with /beef OR /chicken OR /port OR /bacon OR /veggies, then redirect the user to http://www.google.com . With the rule below, this logic works for /beef, but doesn't work correctly for the others (/chicken, /port, /bacon, /veggies). If I change the || (aka OR) to && (aka AND) for the URL match portion, all source IP addresses are permitted to the specified URL paths. ############# # VARIABLES # ############# # Look up the URL path $path = http.getpath(); # Look up the remote client IP address $ip = request.getRemoteIP(); ############### # CONDITIONS # ############### # if ( !string.ipmaskmatch ( $ip, "10.10.10.10/32") && !string.ipmaskmatch( $ip, "10.64.0.0/16" ) && !string.ipmaskmatch( $ip, "10.16.10.0/24" ) && !string.ipmaskmatch( $ip, "10.16.20.0/24" ) && !string.ipmaskmatch( $ip, "10.16.30.0/24" ) && string.startsWithI( $path, "/beef" ) || string.startsWithI( $path, "/chicken" ) || string.startsWithI( $path, "/pork" ) || string.startsWithI( $path, "/bacon" ) || string.startsWithI( $path, "/veggies" ) # # ACTION # { http.redirect( " http://www.google.com " ); }
... View more