simple rewrite rules

Adam Benayoun adam at lionite.com
Sun May 22 11:50:51 MSD 2011


Igor,
Thanks for the pointer however there is one last thing I'm not sure how to
do.
Basically my application is built on top of a framework meaning that
everything should go through index.php and then the routers configured
appropriately should serve you different templates and controllers based on
the REQUEST_URI.

Basically when I try to access http://www.domain.com/category - it should
pass to index.php the request_uri /browse/category and then serve the
appropriate output.
This is how my config look like, let me know if that make sense and what
should I add to mimic that request_uri through index.php

Cheers,

server {
        listen *:80;
        server_name www.domain.com;
        access_log /var/www/domain/logs/access_log main;
        error_log /var/www/domain/logs/error_log debug;
        root   /var/www/domain/html/http;
        index index.php;

        if ($http_host !~ "^www\.domain\.com$") {
                rewrite  ^(.*)    http://www.domain.com$1 permanent;
        }

        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location /browse {
                #rewrite ^/browse/(.*) http://www.domain.com/$1 permanent;
        }
        location /min {
                try_files $uri $uri/ /min/index.php?q=;
        }
        location /blog {
                try_files $uri $uri/ /blog/index.php?q=$1;
        }
        location /apc {
                try_files $uri $uri/ /apc.php$args;
        }

        location ~ \.php {
                include /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                fastcgi_param SERVER_NAME $http_host;
                fastcgi_pass 127.0.0.1:9000;
        }

        location ~* ^.+\.(ht|svn)$ {
                deny  all;
        }

        # Static files location
        location ~*
^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
            expires max;
        }
}




On Sun, May 22, 2011 at 08:21, Igor Sysoev <igor at sysoev.ru> wrote:

> 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:
> >
> > http://www.domain.com/browse/category
> >
> > What I want to achieve is:
> > - When someone try to reach http://www.domain.com/category - it will
> serve
> > the url http://www.domain.com/browse/category internally (no 301
> redirect).
> > - When someone will try to reach http://www.domain.com/browse/categoryit
> > will redirect externally (301) to http://www.domain.com/category
> >
> > I've added 2 rewriterule at first but somehow only the first rule works,
> the
> > second won't work:
> >
> >         rewrite ^/browse/(.*) http://www.domain.com/$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 http://wiki.nginx.org/HttpRewriteModule
>
> 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
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20110522/74587710/attachment-0001.html>


More information about the nginx mailing list