proxying/redirecting after request has been rewritten

i0n nginx-forum at nginx.us
Wed Aug 8 15:04:25 UTC 2012


Hi everyone. 

I'm trying to get Nginx to run some Regex's on requests and send them to
another server block, returning the response headers from the second
server block. At the moment I get a 302 response status, how do I get
the headers from the second server block?

So as an example, I would like a request like:
http://nginxrouting.local/some/stuff/that/needs/to/be/removed/itemid=1234/more/stuff/topicid=1234
to be sent to
http://nginxrouting_destination.local/itemid=1234topicid=1234 returning
the headers from the new location

The server blocks look like this:

server {
	server_name nginxrouting.local;
	root /var/nginxrouting/public;

	location / {

		if ($request_uri ~* ".*(itemid=[0-9]*){1}.*") {
			set $itemid $1;
		}	
		if ($request_uri ~* ".*(topicid=[0-9]*){1}.*") {
			set $topicid $1;
		}	
		if ($request_uri ~* ".*(&type=RESOURCES){1}.*") {
			set $resources $1;
		}	

		rewrite ^
http://nginxrouting_destination.local/$itemid$topicid$resources?
redirect;
		add_header itemid $itemid;

	}

}

server {
	server_name nginxrouting_destination.local;
	root var/govuk/nginxrouting/public_destination;
	location / {
		add_header working yes;
		return 200;
	}
}

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



More information about the nginx mailing list