In most tcl implementations both braces need to be on the same line with the "else", since the "else" is actually part of the "if" command.
In F5's tcl implementation, the "else" has to be on the same line as the leading brace, but the trailing brace may be on the next line.
Standard tcl syntax:
if { condition }{
code
} else {
code
}
Alternate F5 syntax:
if { condition }{
code
} else
{
code
}
And unless your URIs consist only of the specified directories with no trailing path or filename, you will also need to wildcard your switch patterns to get the expected matches:
when HTTP_REQUEST {
switch -glob [string tolower [HTTP::uri]] {
"/affiliates*" -
"/endpages*" -
"/friends*" -
...
HTH
/deb