Need help with rewrite rule

Igor Sysoev is at rambler-co.ru
Wed Feb 25 11:00:32 MSK 2009


On Tue, Feb 24, 2009 at 11:48:39PM -0800, Chris Cortese wrote:

> So this should be working the same way it does on apache then.  $1 looks 
> correct from your test.  Is there anything else about nginx where it 
> would not like the comma?

No, this should work.

> Re: combine statically:  You mean just putting everything into one js 
> file?  If so, I guess that's one solution, but it makes for an extra 
> step whenever one js component gets updated.  Also, different parts of 
> the site may need different combinations of js files...  meaning more 
> work.  Before the combinator I was loading files individually, and the 
> combinator made some of my pages go from several seconds to ~ 1 second.

This on-fly combination is good for tens or hundreds requests per second,
but on thousands it will be bottleneck.

> Igor Sysoev wrote:
> >On Tue, Feb 24, 2009 at 07:15:09PM -0800, Chris Cortese wrote:
> >
> >  
> >>In Apache, I use the following rule.  It runs the combinator script, 
> >>which serializes, minimizes, and gzips a list of javascript files:
> >>
> >>RewriteRule ^/javascript/(.*\.js) /combine.php?type=javascript&files=$1
> >>
> >>In nginx, I've tried many things, to no avail.  Right now I have:
> >>
> >>rewrite ^/javascript/(.*\.js)$ /combine.php?type=javascript&files=$1 last;
> >>
> >>When I load my page and expand the HTML in firebug, at the place where I 
> >>have:
> >>
> >><script type="text/javascript" 
> >>src="http://mysite.com/javascript/prototype.js,effects.js,builder.js,lightbox_live.js,box.js"></script>
> >>
> >>...it shows me 1 line as follows:
> >>
> >>effects.js,builder.js,lightbox_live.js,box.js
> >>
> >>
> >>Surely wildcards in nginx are greedy right?  Can anybody see what's 
> >>wrong here?
> >>    
> >
> >nginx uses PCRE regex library:
> >
> >$pcretest 
> >PCRE version 7.6 2008-01-28
> >
> >  re> #^/javascript/(.*\.js)$#
> >data> 
> >/javascript/prototype.js,effects.js,builder.js,lightbox_live.js,box.js
> > 0: /javascript/prototype.js,effects.js,builder.js,lightbox_live.js,box.js
> > 1: prototype.js,effects.js,builder.js,lightbox_live.js,box.js
> >data> ^D
> >
> >BTW, I do not think that "the combinator script, which serializes,
> >minimizes, and gzips a list of javascript files" is a good thing.
> >
> >It's much better to combine them statically.
> >
> >
> >  
> 

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list