simple rewrite rules

Igor Sysoev igor at
Sun May 22 09:21:56 MSD 2011

On Sun, May 22, 2011 at 03:41:59AM +0300, Adam Benayoun wrote:
> Hello everyone,
> I'm trying to setup some basic rewrite rules in nginx (I'm sorry if I may be
> asking obvious question but I moved my servers from apache to nginx and I
> can't figure out how to write simple rewrite rules in nginx).
> This is what I am trying to achieve:
> I have a URL with the following arguments:
> What I want to achieve is:
> - When someone try to reach - it will serve
> the url internally (no 301 redirect).
> - When someone will try to reach it
> will redirect externally (301) to
> I've added 2 rewriterule at first but somehow only the first rule works, the
> second won't work:
>         rewrite ^/browse/(.*)$1 permanent;
>         rewrite ^/(category1|category2|category3|category4)$    /browse/$1
> last;
> Thanks (and sorry for asking a somewhat newbie question!)
> p.s: yes, I've read this

You should not read anyting about rewrite module. It's better to forget
about it. You should think using locations.

     location /category1/
         #depending on processing method:

         # FastCGI
         fastcgi_pass    backend;
         fatscgi_param   SCRIPT_FILENMAE   /path/to/browse;

         # proxying
         proxy_pass    http://backend/browse/

         # static files
         root   /path/to/browse;

     location /browse/ {
         rewrite ^/browse/(.*)  /$1  permanent;

Igor Sysoev

More information about the nginx mailing list