rewrite with $request_uri auto appends args

NCRonB nginx-forum at nginx.us
Fri Nov 5 20:08:47 MSK 2010


I've been using the following code to redirect non-www to www-refixed
domains:

[code]
server {
    server_name example.com;
    rewrite ^ http://www.example.com$request_uri permanent;
}
[/code]

However, I just realized that when there is a query string, the
resulting URI has the query string twice.  For example:

[code]http://example.com/test.html?a=1&b=2[/code]

...is rewritten as:

[code]http://www.example.com/test.html?a=1&b=2?a=1&b=2[/code]

Is this the correct behavior?

I can add a '?' to the end of $request_uri to make it work as expected,
but I've never seen that in any examples, and I didn't think rewrite was
supposed to auto-append the arguments unless I explicitly put arguments
on the replacement side.

I'm running Nginx 0.8.52.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,148047,148047#msg-148047




More information about the nginx mailing list