14

I whould like this simple rewrite rule:

/somefolder/mypage.aspx?myid=4343&tab=overview

to be redirected to:

/folder/4343/overview/

I looked for some solutions and none actually worked..

I tried:

rewrite ^/somefolder/mypage.aspx?myid=(.*)&tab=overview$  /folder/$1/overview  permanent;

and

rewrite ^/somefolder/mypage\.aspx\?myid=(.*)&tab=overview$  /folder/$1/overview  permanent;

What am I doing wrong? I'm getting 404

(simpler rules works just fine..)

Thanks

2 Answers 2

13

If you want redirect

location ~ /somefolder/mypage.aspx {
    if ($args ~* "^myid=(\d+)&tab=overview") {
        set $mid $1;
        set $args '';
        rewrite ^.*$ /folder/$mid/overview permanent;
    }
}

Don't forget to configure /folder/$1/overview location.

2
  • Thanks, the redirect works, but without the paramater ($1)... it is blank
    – YardenST
    Mar 16, 2013 at 16:05
  • I updated answer. Mar 16, 2013 at 16:13
38

A shorter and more correct version of Valery Viktorovsky answer.

location = /somefolder/mypage.aspx {
    if ($arg_tab != overview) { return 404; }
    if ($arg_myid !~ "^\d+$") { return 404; }
    rewrite ^ /folder/$arg_myid/overview? permanent;
}

Or, hey, it can even be shorter, if you don't need to be verifying the arguments:

rewrite ^/somefolder/mypage.aspx /folder/$arg_myid/$arg_tab? permanent;
4
  • 1
    wish you had posted it earlier :) it would've save me some time
    – YardenST
    Mar 16, 2013 at 19:15
  • lol. did you have a lot of rules like that? well, better late than never! also, can i get an accept, then? :)
    – cnst
    Mar 16, 2013 at 19:30
  • Valery solution works bottom line :) and there could be only one answer :)
    – YardenST
    Mar 16, 2013 at 19:34
  • 9
    meta.stackexchange.com/questions/5234/… « Make sure that besides working for you, the answer is really good practice. Sometimes after the answer gets accepted, another comes in, uncovering the fact that previous one was in fact a bad hack. » Seriously, there are not just one, but a several different problems with Valery's answer! Every line is essentially wrong, other than the curly braces!
    – cnst
    Mar 16, 2013 at 20:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .