URI re-mapping using try_files
Francis Daly
francis at daoine.org
Thu Oct 11 16:57:47 UTC 2012
On Thu, Oct 11, 2012 at 09:19:23AM -0400, mrtn wrote:
Hi there,
> I use nginx to serve static html pages to users, and in particular, I want
> users who visit 'www.example.com/public/doc/abc123?para=data' to be served
> with the file '/home/www/example/public/doc/abc123/abc123.html' on the
> server, but 'www.example.com/public/doc/abc123?para=data' stays in the
> user's browser address bar.
For this sort of thing, "rewrite" (http://nginx.org/r/rewrite) is probably
the directive you want.
rewrite (.*)/(.*) $1/$2/$2.html break;
can do what you want in this case.
What do you want to happen if the user asks for any of:
http://www.example.com/public/doc/abc123
http://www.example.com/public/doc/abc123?para=nodata
http://www.example.com/public/doc/abc123/abc123.html
http://www.example.com/public/doc/one/two
The rewrite directive above may or may not do what you want for those.
> So there are two issues here: 1. map URI pattern '/public/doc/blah' to file
> '/home/www/example/public/doc/blah/blah.html' on the server; 2. keep query
> string '?parap=data' in the address bar.
1) is in the rewrite (or any similar configuration which maps url to file)
2) is by virtue of not doing an external rewrite, which is a redirection.
f
--
Francis Daly francis at daoine.org
More information about the nginx
mailing list