Welcome! Log In Create A New Profile

Advanced

Re: Nginx rewrite help: SEO/Permalink

Tobia Conforto
February 01, 2010 09:38AM
Harish Sundararaj wrote:
> I have a list which is something like this:
> keyA : a1,a2
> keyB : b1,b2
> keyC : c1, c2
> the access URL will be http://example.com/results/myquery/keyB-keyD-keyK
> This should translate to /results?q=myquery&keyvals=b1,b2,d1,d2,k1,k2

Here is one way to do it inside nginx. It's sub-optimal, as it sends several redirects back to the user (one for each key) but it's a start.

You are probably better off using something like the Perl module anyways.

# map of key/value pairs
map $key $val {
keyA a1,a2;
keyB b1,b2;
keyC c1,c2;
}

# redirect for one key
location ~ ^/results/([^/]+)/([^-]+)$ {
set $query $1;
set $key $2;
if ($arg_keyvals) { set $sep ","; }
rewrite ^ /results?q=$query&keyvals=$arg_keyvals$sep$val? permanent;
}

# intermediate redirect for more than one key
location ~ ^/results/([^/]+)/([^-]+)-(.+)$ {
set $query $1;
set $keys $3;
set $key $2;
if ($arg_keyvals) { set $sep ","; }
rewrite ^ /results/$query/$keys?keyvals=$arg_keyvals$sep$val? permanent;
}


Tobia_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Nginx rewrite help: SEO/Permalink

Harish Sundararaj January 30, 2010 05:26AM

Re: Nginx rewrite help: SEO/Permalink

NeWorld January 30, 2010 07:02AM

Re: Nginx rewrite help: SEO/Permalink

Tobia Conforto February 01, 2010 09:38AM

Re: Nginx rewrite help: SEO/Permalink

Harish Sundararaj February 04, 2010 03:24AM

Re: Nginx rewrite help: SEO/Permalink

Tobia Conforto February 04, 2010 06:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 246
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready