Context and perl regexps

zellster

Well-Known Member
#1
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

LiteSpeed Staff
#2
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

Well-Known Member
#3
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

LiteSpeed Staff
#4
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.
 
Top