Chapter 1: Overview of Content Policy Language

More complex boolean expressions are allowed for the pattern_expression in the triggers. For example, the second part of the condition in the simple rule shown above could be “the request is made between 9 a.m. and noon or between 1 p.m. and 5 p.m”, expressed as:

... time=(0900..1200 1300..1700) ...

Boolean expression are built from the specific values allowed with the trigger, and the boolean operators ! (not), && (and), (or) and () for grouping. More details are found in the Trigger Reference chapter. Alternative values may also be separated by a comma—this is often more readable than using the ‘’ operator. For example, the following rule will deny service to requests for pages in either one of the two domains listed.

url.domain=(example.com, another.com) deny

Long lines can be split using ‘\’ as a line continuation character. The ‘\’ must be the last character on the line and be preceded by space or Tab. For example:

url.domain=example.com time=0900..1700 \ deny

Do not use a semicolon to add comments within such a continued line: everything following the semicolon, including text on the continued lines, will be treated as part of the comment. For example:

url.domain=example.com \ ; missplaced comment deny

becomes

url.domain=example.com ; missplaced comment deny

In other words, the effect was to continue the comment.

Quoting

Certain characters are considered special by CPL and have meaning as punctuation elements of the language. For example = (equal) separates a trigger name from its associated value, and blank space separates expressions in a rule. To use a value that contains one of these characters, the value must be quoted with either single (') or double (") quotation marks, so that the special characters are not interpreted as punctuation. Text within single quotation marks can include any character other than a single quotation mark. Text within double quotation marks can include any character other than a double quotation mark. Here are some examples of where quoting is necessary:

user="John Doe" ; value contains a space

url="www.example.com/script.cgi?param=value" ; value contains ‘=’

deny( "You don’t have access to that page!" ) ; several special chars

The full list of characters that should be quoted when they appear can be found in the reference manual. Note that you can quote any string in CPL without affecting interpretation, even if the quotes are not strictly needed. For convenience, you can quote any value that consists of more than letters and/or numbers.

user="john.doe" ; quotes not required, but can be used

Important: Within a define action or define url_rewrite statement, you must use double quotes ("), not single quotes (') to delimit a string.

23

Page 23
Image 23
Blue Coat Systems Proxy SG manual Quoting