<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Harish Sundararaj wrote:</div><blockquote type="cite">I have a list which is something like this:<br>keyA : a1,a2<br>keyB : b1,b2<br>

keyC : c1, c2<br>the access URL will be&nbsp;<a href="http://example.com/results/myquery/keyB-keyD-keyK" target="_blank">http://example.com/results/myquery/keyB-keyD-keyK</a> <br>

This should translate to /results?q=myquery&amp;keyvals=b1,b2,d1,d2,k1,k2<br></blockquote><div><br></div><div>Here is one way to do it inside nginx.&nbsp;It's sub-optimal, as it sends several redirects back to the user (one for each key) but it's a start.</div><div><br></div><div>You are probably better off using something like the Perl module anyways.</div><div><br></div><div><div># map of key/value pairs</div><div>map $key $val {</div><div>&nbsp;&nbsp;keyA a1,a2;</div><div>&nbsp;&nbsp;keyB b1,b2;</div><div>&nbsp;&nbsp;keyC c1,c2;</div><div>}</div><div><br></div><div><div># redirect for one key</div><div>location ~ ^/results/([^/]+)/([^-]+)$ {</div><div>&nbsp;&nbsp;set $query $1;</div><div>&nbsp;&nbsp;set $key $2;</div><div>&nbsp;&nbsp;if ($arg_keyvals) { set $sep ","; }</div><div>&nbsp;&nbsp;rewrite ^ /results?q=$query&amp;keyvals=$arg_keyvals$sep$val? permanent;</div><div>}</div><div><br></div><div># intermediate redirect for more than one key</div><div>location ~ ^/results/([^/]+)/([^-]+)-(.+)$ {</div><div>&nbsp;&nbsp;set $query $1;</div><div>&nbsp;&nbsp;set $keys $3;</div><div>&nbsp;&nbsp;set $key $2;</div><div>&nbsp;&nbsp;if ($arg_keyvals) { set $sep ","; }</div><div>&nbsp;&nbsp;rewrite ^ /results/$query/$keys?keyvals=$arg_keyvals$sep$val? permanent;</div><div>}</div><div><br></div><div><br></div></div></div><div><div><div>Tobia</div></div></div></div></body></html>