PDA

View Full Version : Context and perl regexps


zellster
06-17-2005, 11:52 AM
Hello,

I have the following context set up under LSWS SE 2.0.7:

[Proxy] "/" --> Java app server

I would like to selectively redirect certain directory paths to a different server, primarily for serving static content (LiteSpeed is acting as a firewall in this scenario).

I tried the following context:

[Proxy] exp:^/(css|img|ssi)/ --> Web server

Unfortunately, that Perl expression did not seem to work in that requests to http://myserver/css/my.css and others still go to the Java app server.

I then tried:

[Proxy] exp:^/(css|img|ssi)/.* --> Web server

which didn't produce the desired result, either. I am guessing that non-regexes are matched before regexes, which would always match against "/".

Other than using three separate contexts (/css/, /img/, /ssi/) is there a better way to do the above?

Thanks.

mistwang
06-17-2005, 12:14 PM
I am guessing that non-regexes are matched before regexes, which would always match against "/".
That's correct, explicit matching always takes place before regex matching. It is the current design.

Other than using three separate contexts (/css/, /img/, /ssi/) is there a better way to do the above?
Noop, at this point.
Actually, it should be faster than using regex matching.

zellster
06-17-2005, 02:04 PM
OK,

How does the regexp matching work? Supposed I changed the context URIs like the following:

[Proxy] exp:^/.* --> Java App Server
[Proxy] exp:^/(css|img|ssi)/.* --> Static content provider

Which order would LSWS attempt to match incoming requests? Is there a way to specify that the 2nd exp should be tried first?

Thanks...

mistwang
06-17-2005, 02:21 PM
Yes, you can specify the order of contexts from the admin interface by clicking the "+"/"-" sign in the sequence colume. Regex context with lower sequence number will be tried first.